Люди, проблема, есть код:
| Код | if (!CreateProcess("process.exe","",NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,NULL,NULL,&SI,&PI)) { MessageBox(0,"Error loading process.exe",NULL,MB_ICONERROR|MB_TOPMOST); return -1; } if (PI.hProcess) { while (ReadProcessMemory(PI.hProcess,(LPVOID)0x0049f44f,&buf2,1,NULL)!=0) { if (buf2 == 0x74/*op-code for jz*/) { if (WriteProcessMemory(PI.hProcess,(LPVOID)0x0049f44f,&buf,1,NULL)==0) //Replace it with jnz { MessageBox(0,"Failed writing to process memory!",NULL,NULL); } return 0; } } } return 0; }
|
Его задача, загрузить .exe, подождать, пока в адрес 0x0049f44f не загрузится 0xA74 и переписать 0x74 на 0x75 Но при запуске этой проги, вечно выскаивает Message Box с заголовком "Protection Error" и с текстом сообщения: "Error: 15" Но если перед написать Sleep(200); То всё Ok и память пишется нормально. В чём дело ? Можно как-то записать в память без этого Sleep'а |