Hi,
ZitatIch hab die Server.exe mal in Olly geladen:
Das ist der Einsprungpunkt in den ASM-Teil vom Server.
Aber den Fehler verstehe ich nicht so ganz...
Die Exception wird geworfen, weil der Stackpointer ESP nicht auf den ersten Parameter zeigt, sondern sonstwohin....
Das ist in einem 32-Bit-Script / Betriebssystem imho unmöglich, da der Funktions-Call die Parameter nacheinander auf den Stack pushed.
Das einzige, was ich mir vorstellen könnte, ist die "falsche" DLL (32/64 Bit), in der das Callwindowprocw aufgerufen wird (warum funktioniert dann aber Getsystemmetrics? )
[autoit]Global $hDLL_User32 = DllOpen("user32.dll")
[/autoit]Bitte teste folgendes:
Tauschen der Zeile im Server
$Ret = DllCall("user32.dll", "int", "CallWindowProcW", "ptr", $pcode, "ptr", $pnew, "ptr", $pold, "int", $iWidth * $iHeight, "ptr", $pInfoStruct)
[/autoit]
gegen
$Ret = DllCalladdress( "int:cdecl", $pcode, "ptr", $pnew, "ptr", $pold, "int", $iWidth * $iHeight, "ptr", $pInfoStruct)
[/autoit]
ggf auch im Client anpassen. DllCallAddress ist eine AutoIt-Funktion seit 3.3.8.0
/EDIT/ Nächster Versuch ist DEP zu deaktivieren....