将函数从钩子dll复制到进程内存中

时间:2013-08-01 16:26:30

标签: c++ push

我挂了一个dll,得到了这个过程的句柄。我想在dll中创建一个函数,并执行一些。 (我知道如何跳到那里,我的问题是复制) 假设我的函数看起来像:

void Test()
{
     PUSH EAX;
     POP EAX;
}

我想复制这个,到目标进程的末尾(没有指令,到处都是00),让我们说地址是0x12345

所以当我调试程序时,我想看看

    00012345    PUSH EAX
    00012346    POP EAX

我尝试使用memcpy,但它似乎没有用。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

您需要说服被挂钩的进程加载另一个DLL,或者说服它使用写入+执行权限位调用VirtualAlloc,然后在DLL中使用新代码或将其复制到已分配的内存中 - 请记住,您需要在已分配的内存中重新定位它,往往更容易将另一个DLL注入进程。肯定有相当多的“作弊”。