gpt4 book ai didi

c++ - 在加载 DLL 之前创建 RemoteThread

转载 作者:行者123 更新时间:2023-11-28 07:28:51 26 4
gpt4 key购买 nike

我正在尝试使用 CreateRemoteThread 将我的代码注入(inject)到另一个进程,但是如果我的代码在进程加载 DLL 时被注入(inject),则线程会卡住,直到加载 DLL(根据 MSDN 是可以的)。我试图通过注入(inject)代码并等待结果然后检查 EAX 来检测进程是否已加载,但它非常慢。

因此,我正在寻找方法来检查进程是否仍在加载 DLL,或者它是否已加载所有 DLL,我可以调用 CreateRemoteThread 以等待我的代码立即执行。

最佳答案

使用 Debug API , 以调试者的身份运行你的目标进程,并让你的注入(inject)进程成为“调试器”,然后你将得到所有 DLL 加载/卸载事件的通知,以及当进程加载并准备运行时(你点击“加载器”断点”)。对于 x64,它会变得更复杂,如果您尝试注入(inject)托管代码,它会变得更复杂,但它工作得很好。

我有几个使用此方法的工具(herehere)没有可用的源代码,抱歉。

如果您尝试做的是挂接各种 API,那么执行此操作的规范方法是始终同时挂接 LoadLibrary(),以便您可以挂接加载时加载的任何新 DLL。进程正在运行。但是,我仍然发现使用调试 api 控制目标进程很有用,因为它可以更轻松地尽快 Hook (在加载程序断点处,在恢复进程之前)。

关于c++ - 在加载 DLL 之前创建 RemoteThread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18141262/

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