Soo, habe einfach mal dein Memory Dump genommen und damit ein
TZydisDecodedInstruction
Struct gefüllt. Werte sehen alle gut aus (sowohl in deiner Textdatei, als auch bei mir im Debugger) und auch damit schlägt
ZydisFormatInstructionEx
bei mir nicht fehl. Denke mal damit ist dann auf jeden Fall schonmal sicher, dass es sich um ein Problem im Zusammenhang mit FPC handelt. Ich schaue mal, ob ich die Lazarus
IDE irgendwie gescheit auf meiner VM aufgesetzt bekomme, sonst ist das hier eher ein Ratespiel
Edit: Leider bekomme ich es nichtmal hin für 32-bit zu compilen ^^
Edit: Okay, das wird immer komischer. Auf meiner Win10 1607 VM erhalte ich direkt beim Start den Fehler 0x7B
Code:
ERROR_INVALID_NAME
123 (0x7B)
The filename, directory name, or volume label syntax is incorrect.
aber auf meinem 1709er Produktivsystem startet die Anwendung, aber schmeißt dann direkt die
ZydisException
mit
ZYDIS_STATUS_INVALID_PARAMETER
.
Edit: Interessant. Auf der VM weigert sich auch z.b.
rundll32.exe
oder OllyDbgs
loaddll.exe
die
Zydis32.dll
als valide
Win32 PE-Datei anzuerkennen
Auf dem Produktivsystem funktioniert auch dies. Erstellt wurde die
DLL mit Visual Studio 2017 (MSVC).
Edit: Okay, das lag daran, dass ich ausversehen nicht statisch gelinkt hatte und mir auf der VM die 32-bit C-Runtimes fehlten.
ZYDIS_STATUS_INVALID_PARAMETER
tritt nach wie vor auf. In OllyDbg kann ich sehen, dass FPC statt eines Zeigers leider das komplette Struct auf den Stack pusht.