使用C ++进行ASM / OPcode注入

时间:2011-02-21 08:02:03

标签: c++ dll assembly code-injection

我正在尝试使用C ++将一些ASM代码注入到Win32程序中。 有没有办法做到这一点,避免DLL注入?

例如:

__asm{}

仅适用于当前的计划。是否有类似的东西用于生成我可以用WriteProcessMemory注入的十六进制代码?

提前致谢!

2 个答案:

答案 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)

一种技术是手工组装并将代码放入数组中,然后将代码复制到应该去的位置。但这种情况正在陷入黑客攻击的土地,我对此并不了解。