السلام عليكم
قم بتخزين العوان باحدى المسجلات ثم دعه يقفز اليه.
(31-12-2022, 01:22 PM)lionking كتب :
- كيف يمكنني كتابة العنوان Address الذي سيتم القفز إليه JMP بشكل صحيح؟
قم بتخزين العوان باحدى المسجلات ثم دعه يقفز اليه.
(31-12-2022, 01:22 PM)lionking كتب : كيف أقوم بحقن التعليمة كمثال JMP 0x0048D9B2 بسطر كود واحد بأستخدام الدالة WriteProcessMemory بدلا من تكرار كتابة الدالة مرة لكتابة أمر JMP ومرة لكتابة العنوان Address؟
void writeMemory()
{
byte bMove = 0xB8;
DWORD dwAddress = 0x48D9B2 ;
WORD wJumpeax = 0xE0FF;
byte* buf = new byte[7]; // 1 mov , 4 address , 2 jmp eax
*buf = bMove;
memcpy(&buf[1], &dwAddress,sizeof(DWORD));
memcpy(&buf[5], &wJumpeax, sizeof(WORD));
DWORD dwBytesWritten = 0;
DWORD dwTargetAddress = 0x40100A;
WriteProcessMemory(GetCurrentProcess(), (LPVOID)dwTargetAddress, buf, 7, &dwBytesWritten);
delete[] buf;
}