Форум: "WinAPI";
Текущий архив: 2002.03.07;
Скачать: [xml.tar.bz2];
ВнизЗагрузка DLL в чужой процесс Найти похожие ветки
← →
paul_shmakov (2002-01-08 12:16) [4]есть множество способов загрузки dll в адресное пространство процесса. разделить их можно на два вида: динамическая подгрузка и "статическая" (осуществляемая правкой exe-шника). у каждого из видов есть свои достоинства и недостатки.
главное достоинства динамического метода в том, что не нужно изменять никаких файлов. главный недостаток в том, что для загрузки dll в адресное пространство некоего процесса необходима еще одна наша программа (loader.exe), которая эту загрузку и осуществляет (за исключением метода HKLM\...\AppInit_DLLs).
статический метод позволяет либо добавить свой код, который вызовет LoadLibrary; либо изменить таблицу импорта, так, чтобы на этапе запуска exe-шника загрузчик подгрузил нашу dll. метод хорощ тем, что для дальнейшей работы не требуется никаких loader.exe - остается только программа-жертва и наша dll. достоинства являются и недостатками :( меняется исходный файл, что, безусловно, плохо. особенно если нужно внедрять dll в несколько процессов.
в каждом конкретном случае в зависимости от задачи нужно выбирать подходящий метод.
теперь несколько вариантов реализации статического и динамического внедрения. введем для удобства несколько обозначений. program.exe - программа, в которую мы внедряем нашу dll, mydll.dll - наша dll, loader.exe - программа, которая загружает нашу dll в адресное пространство program.exe (нужна для динамического метода).
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.03.07;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c