将 32 位 dll 注入 64 位进程 - Autoit 使之成为可能

Injecting 32bit dll into 64bit process - Autoit makes it possible?

本文关键字:Autoit dll 注入 进程      更新时间:2023-10-16

afaik 没有办法将 32 位 DLL 注入 64 位进程,反之亦然(至少我的 C++ 编写的注入器/DLL 是不可能的)。但是,当使用 http://pastebin.com/AGWw2kT8 的 Autoit 注入器时,可以将 32 位 dll 注入 64 位进程。这个Autoit库使用与我的c ++注入器(CreateRemoteThread)相同的注入方式。有人可以解释这种行为吗?

CreateRemoteThread 32->64不起作用!

CreateRemoteThread 64->32会起作用!

有关该主题的更多信息,请单击此处

我已经找到了注射成功的原因。在 Autoit 注入测试脚本中,我使用 @SystemDir & "calc.exe" 作为目标应用程序的路径。但是,在 64 位 Windows 安装中,@SystemDir宏指向 C:\Windows\SysWOW64 而不是 C:\Windows\System32 - 因此脚本启动了 32 位版本的 calc.exe,其中注入成功。

它不可能工作(你不能在一个进程中混合使用 32 位和 64 位代码)。因此,它没有。当然,它可能无法明确表示它没有奏效。