将参数传递到Dll入口点



我想把一个结构传递给我的dll的main,它在我的注入器中,所以基本上我想这样做:

struct structure{
char text[1024];
};
int DllMain(structure arg1,uintptr_t arg2,uintptr_t arg3);

然而,我想知道如何让我的注入器通过结构。顺便说一下,我手动映射dll。

不能将自定义参数传递给DllMain()。签名是固定的,除此之外,无论如何都不会直接调用DllMain(),只有操作系统会调用。

您的选择是:

  • 让DLL导出一个单独的函数,该函数在将DLL注入进程后调用。

  • 将数据存储在DLL注入后可以访问的共享内存块中。

  • 在DLL和注入器之间设置进程间通信通道,例如使用命名管道或套接字。

在DLL中添加一个与结构大小相同或固定大小更大的资源,内容无关紧要,稍后会覆盖它,它基本上是一个存根。

在手动映射之前,将DLL加载到注入器的本地内存中

用您的数据覆盖此资源。

手动将DLL映射到目标进程

访问资源以获得所需的数据

最新更新