首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载DLL之前的CreateRemoteThread

加载DLL之前的CreateRemoteThread
EN

Stack Overflow用户
提问于 2013-08-09 06:36:08
回答 2查看 634关注 0票数 0

我试图使用CreateRemoteThread将我的代码注入到另一个进程,但是如果我的代码在进程加载DLL的过程中被注入,线程就会被冻结,直到DLL被加载(根据MSDN可以)。我试图通过注入代码、等待结果和检查EAX来检测进程是否加载,但速度非常慢。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-09 19:59:45

由于您已经有了目标进程的HANDLE,所以在调用CreateRemoteThread()之前尝试使用WaitForInputIdle()

票数 0
EN

Stack Overflow用户

发布于 2013-08-09 08:18:09

使用调试API,将目标进程作为调试器运行,并让注入进程成为“调试器”,然后您将被告知所有的DLL加载/卸载事件,以及进程加载并准备运行时(您到达了“加载器断点”)。对于x64来说,它变得更加复杂,如果您试图注入托管代码,则会变得更加复杂,但是它运行得很好。

我有几个工具使用这个方法(这里这里),没有可用的源代码,对不起。

如果您要做的是挂起各种API,那么常规的方法就是始终挂起LoadLibrary(),以便您可以挂起进程运行时加载的任何新DLL。但是,我仍然认为使用调试api控制目标进程是有用的,因为它使您能够尽快(在加载器断点,在继续处理之前)挂钩变得更容易。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18141262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档