bcdedit.exe /set {current} nx AlwaysOn REM Then run autodata.exe If so, I can write a standalone .exe that prints that error message and terminates with the same error code for testing or documentation.
// Call virtual method -> corrupt VMT -> runtime error 217 obj.CrashMe; end. autodata runtime error 217 at 00580d29
// Windows SEH-based forced exception at 0x00580d29 #include <windows.h> void __declspec(naked) CrashAt00580d29() { __asm { mov eax, 0x00580d29 call eax // jump to invalid code -> exception } } bcdedit
BOOL APIENTRY DllMain(HMODULE, DWORD reason, LPVOID) { if (reason == DLL_PROCESS_ATTACH) CrashAt00580d29(); return TRUE; } corrupt VMT ->
procedure TFakeObject.CrashMe; begin Writeln('This will not be reached'); end;
@echo off del /f /q "%APPDATA%\AutoData\*.dat" 2>nul del /f /q "%PROGRAMDATA%\AutoData\*.cfg" 2>nul reg delete "HKCU\Software\AutoData" /f 2>nul start autodata.exe Force DEP on for the executable (even if not DEP-aware):