-
-
[求助]用c++写远程注入的问题
-
发表于:
2014-6-7 19:38
4350
-
最近学习很老的注入技术, 用WriteProcessMemory做注入。
以下是要注入的汇编 和 call的代碼
void tidy() {
DWORD addr = 0x4AED10;
_asm{
pushad
pushfd
mov eax, addr
call eax
popfd
popad
ret
}
}
void callAsm(const char* processName, PVOID CallFun)
{
HANDLE hProcess = OpenProcessEasy(processName);
LPVOID allocAddr = VirtualAllocEx(hProcess, NULL, 0x100, MEM_COMMIT, PAGE_EXECUTE_READ);
// 假设 allocAddr = 0xabc
WriteProcessMemory(hProcess, allocAddr, CallFun, 0x100, NULL);
}
执行callAsm("xxx.exe",tidy);
用CE查了0xabc 这个地址 写进去的东西竟是
E9 98190000 jmp 0364199D
E9 27190000 jmp 03641931
完全不是tidy内的汇编
如果将tidy转成机器码 就肯定會成功
byte code[] = { 0x60, 0x9C, 0xB8, 0x10, 0xED, 0x4A, 0x00, 0xFF, 0xD0, 0x9D, 0x61, 0xC3 };
但是有没有引擎 能将汇编自动转成一堆机器码?
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)