2013-10-19 1 views
-2

, если вы хотите выполнить весь код в DLL через пользовательский процесс, как бы вы это сделали? После того, как createremotethread используется для выполнения loadlibraryA из файла kernel32.dll, и когда он загружает dll в пространстве пользователя, как exe выполняет весь код внутри него?при инъекции dll, как программа пользователя выполняет его

+0

Пожалуйста, используйте Google для получения основных вопросов. Запрос «createremotethread dll injection», и вы найдете много хороших хитов, демонстрирующих технику. И, пожалуйста, перестаньте задавать один и тот же вопрос повторно. –

ответ

0

Прежде всего, вы должны знать, что LoadLibrary() ничего не делает, кроме как загружать код DLL в пространство виртуальной памяти процесса, называемого LoadLibrary().

Это означает: LoadLibrary() - это своего рода malloc(), который выделяет некоторую память и затем загружает содержимое библиотеки DLL в память. На данный момент код DLL не выполняется.

Обычно DLL содержит множество функций. Ни одна из этих функций не выполняется.

Однако DLL имеет «код инициализации». Этот код выполняется LoadLibrary(). Этот «код инициализации» - это код, который используется людьми, которые хотят вводить код в другие процессы.

Следующая статья описывает три способа, чтобы ввести код в другие процессы:

http://www.codeproject.com/Articles/4610/Three-Ways-to-Inject-Your-Code-into-Another-Proces

Если вы не понимаете, что статья (это, как я понимаю, комментарий Hans Passant), вы отсутствуют некоторые базовые знания о DLL и процессы, и вы не поймете инъекцию кода.

Смежные вопросы