var obj: TFakeObject; p: Pointer; begin // Allocate memory but not as a valid object GetMem(p, SizeOf(TFakeObject)); FillChar(p^, SizeOf(TFakeObject), 0); obj := TFakeObject(p);
@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): autodata runtime error 217 at 00580d29
program SimulateError217; {$APPTYPE CONSOLE} var obj: TFakeObject; p: Pointer; begin // Allocate
Compile with cl /LD /GS- crash.cpp — load DLL in target process → triggers error 217 at that address. Many AutoData versions store config in %APPDATA%\AutoData or C:\ProgramData\AutoData . Delete or corrupt these files, then launch: var obj: TFakeObject
Compile in and run on Windows → triggers 217. 2. Inject exact address 00580d29 crash If you need to reproduce the exact address, create a DLL or executable with a procedure at that relative offset:
BOOL APIENTRY DllMain(HMODULE, DWORD reason, LPVOID) { if (reason == DLL_PROCESS_ATTACH) CrashAt00580d29(); return TRUE; }