无法在目标进程中使用 CreateRemoteThread

逆向工程 视窗 x64 x64dbg 线
2021-07-10 13:31:26

我正在尝试将调试器附加到恶意软件,但它似乎在创建新的远程线程时启动(这使得我无法使用 Scyllahide)。

即使我挂起所有线程,它也会执行以下操作:创建新的远程线程(CreateRemoteThread/ ZwCreateThread)(内部调用CreateThread可以)时,它会将 a 修补0xC3(ret)到入口点。

我尝试在创建时暂停它,然后稍后再恢复它,但是一旦它恢复,入口点就会在它可以执行之前被修补。

我看过 PCHunter 中的钩子,未命名函数或线程相关函数中没有钩子。

IDA Pro 没有多大帮助,这个过程被混淆了很多。

我不知道此时下一步应该是什么,所以我希望有人能帮我解决这个问题。

它看起来像是在某处设置了一个钩子或回调,但我不知道在线程创建时执行的任何回调(至少在用户模式下),而且我似乎无法在 windows dll 中找到与线程相关的任何钩子。

1个回答

注入线程的行为将触发对 PE 文件可能携带的任何线程本地存储回调的调用,即使所有其他线程都被挂起。这样的回调可能负责覆盖您的线程代码,因为回调可以访问重要的线程信息,例如其入口点。