我正在尝试使用C ++将一些ASM代码注入到Win32程序中。 有没有办法做到这一点,避免DLL注入?
例如:
__asm{}
仅适用于当前的计划。是否有类似的东西用于生成我可以用WriteProcessMemory注入的十六进制代码?
提前致谢!
答案 0 :(得分:3)
在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);
答案 1 :(得分:1)
一种技术是手工组装并将代码放入数组中,然后将代码复制到应该去的位置。但这种情况正在陷入黑客攻击的土地,我对此并不了解。