gpt4 book ai didi

c - 使用远程线程 : Where to store DLL filename/location in target process address space? 注入(inject) DLL 代码

转载 作者:太空宇宙 更新时间:2023-11-04 03:16:27 25 4
gpt4 key购买 nike

这个问题可能没有(有用的)答案,但无论如何。我想通过 DLL 代码注入(inject)将代码注入(inject)应用程序。计划是:

  1. 找到目标进程中LoadLibrary函数的地址。

  2. 使用 WriteProcessMemory() 在目标进程地址空间的某处写入一个字符串,其中包含我要加载的 DLL 的名称/文件路径。

  3. 使用 CreateRemoteThread() 启动一个远程线程,将 LoadLibrary() 的地址作为入口点,并将指向包含要加载的 DLL 的名称/文件路径的字符串的指针作为 LoadLibrary() 函数的参数.

问题是没有。 2.我将字符串存储在目标进程地址空间的哪个位置(不会损坏某些内容)?

如果之前有人问过这个问题,请随时指点我。

非常感谢您的帮助。

最佳答案

VirtualAllocEx允许您指定分配内存的进程。您将使用它来分配一 block 内存。请注意,您不能直接写入返回的地址——它处于不同的进程中。您可以通过 WriteProcessMemory 写入 DLL 名称.

如果您打算将代码放在 DllMain 中,则不应这样做。 Windows 在执行 DllMain 时持有内部锁,这会增加死锁的风险,具体取决于您打算在 Hook 代码中执行的操作。您可以获取 DLL 中函数的地址,并在加载 DLL 后再次使用 CreateRemoteThread 在单独的线程上运行它。

与其自己实现所有这些,我建议您使用某人已经编写的库,例如 EasyHook ,它同时支持托管和非托管注入(inject)。

关于c - 使用远程线程 : Where to store DLL filename/location in target process address space? 注入(inject) DLL 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51050381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com