本人用的是vs2015,本人需要对某进程注入一些代码,使得最后执行完后跳会原来地址,目前已知 该进程中 欲跳回代码地址是004B2FF3 ,
于是本人写成这样:
于是本人写成这样:
DWORD Address_m = 0x004B2FF3; inline _declspec(naked) static void MyAsm() { _asm { jmp Address_m } }
最后再用writeprocessmemory等去调用
PVOID Address_Write= VirtualAllocEx(Handle_My, NULL, 0xffff, MEM_COMMIT, PAGE_EXECUTE_READWRITE); WriteProcessMemory(Handle_My, (LPVOID)Address_Write,&MyAsm, 0xffff,0); CreateRemoteThread(Handle_My, NULL, NULL, (LPTHREAD_START_ROUTINE)Address_Write, NULL, NULL, NULL);
但问题是这样写反汇编出来 跳转的地址根本不对,该怎么写呢
另一个问题:有没可能直接在内联汇编中直接插入机器码或载有机器码的变量(目前本人测试下来好像不行)
解决方案:40分
_asm { mov eax, 004B2FF3H jmp eax }