Внедрение 32-битной DLL в 64-битный процесс — Autoit делает это возможным?

afaik нет способа внедрить 32-битные dll в 64-битные процессы и наоборот (по крайней мере, это невозможно с моим c ++ написанным инжектором / dll). Однако при использовании инжектора Autoit из http://pastebin.com/AGWw2kT8 можно ввести 32-битные библиотеки в 64-битные процессы. Эта библиотека Autoit использует тот же способ инъекции, что и мой инжектор c ++ (CreateRemoteThread). Может кто-нибудь объяснить это поведение?

1

Решение

Я нашел причину, почему инъекция прошла успешно. В скрипте теста впрыска Autoit я использую @SystemDir & "\calc.exe" в качестве пути для целевого приложения. Тем не менее, на 64-битной установке Windows @SystemDir макрос указывает на C: \ Windows \ SysWOW64 вместо C: \ Windows \ System32 — поэтому сценарий запустил 32-битную версию calc.exe, в которой внедрение прошло успешно.

1

Другие решения

CreateRemoteThread 32->64 не сработает!

CreateRemoteThread 64->32 буду работать!

Больше информации на эту тему Вот

1

Это не может работать (вы не можете смешивать 32- и 64-битный код в одном процессе). Поэтому это не так. Конечно, может не дать понять, что это не сработало.

0