我正在尝试使用C ++将一些ASM代码注入Win32程序中。
有没有一种方法可以避免DLL注入?
例如:
__asm{}
仅适用于当前程序。是否有类似的东西可以用来生成我可以用WriteProcessMemory注入的十六进制代码?
提前致谢 !
最佳答案
在MSVC中,它可能如下所示:
void* shellcodeStart;
void* shellcodeEnd;
__asm {
mov shellcodeStart, offset shellcode_start
mov shellcodeEnd, offset shellcode_end
jmp shellcode_end
shellcode_start:
... // your code
shellcode_end:
}
size_t cb = shellcodeEnd - shellcodeStart;
WriteProcessMemory(hProcess, remoteAddress, shellcodeStart, cb, NULL);