简体   繁体   中英

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

afaik there is no way to inject 32bit dlls into 64bit processes and vice versa (at least it's not possible with my c++ written injector / dll). However, when using the Autoit injector from http://pastebin.com/AGWw2kT8 it is possible to inject 32bit dlls into 64bit processes. This Autoit library uses the same way of injecting as my c++ injector (CreateRemoteThread). Can someone explain this behaviour?

CreateRemoteThread 32->64 won't work!

CreateRemoteThread 64->32 will work!

More info on that subject here

I've found the reason why the injection was successful. In the Autoit injection test script I use @SystemDir & "\\calc.exe" as path for the target application. However, on a 64bit Windows installation the @SystemDir macro points to C:\\Windows\\SysWOW64 instead of C:\\Windows\\System32 - therefore the script started the 32bit version of calc.exe, in which the injection succeeded.

It can't possibly work (you can't mix 32 and 64 bit code in one process). Therefore it doesn't. It may of course fail to make it clear that it hasn't worked.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM