Сейчас на форуме: rmn, Magister Yoda, vasilevradislav, tyns777 (+6 невидимых) |
![]() |
eXeL@B —› Программирование —› как сделать лоадер который может патчить dll программы |
Посл.ответ | Сообщение |
|
Создано: 01 августа 2008 05:51 · Личное сообщение · #1 НУ по логике надо сначало создать отладочный цикл. Потом надо дождатся загрузки dll в память программы (LOAD_DLL_DEBUG_EVENT), затем просто использовать WriteProcessMemory для записи нужных байтов. Но вот в чем вопрос: 1. Как обнаружить что именно нужная dll загрузилась? 2. Как записать в dll нужные байты? Если можно покажите пример. ![]() |
|
Создано: 01 августа 2008 09:06 · Поправил: SergX · Личное сообщение · #2 НУ по логике надо сначало намана написать чё надо. Если я правильно понял то ставишь хук на kernel32\LoadLibraryA. В своём обработчике LoadLibraryA вызываешь настоящий LoadLibraryA и после загрузки длл проверяешь та ли это либа. Если та то меняем чё надо.. 1. Как обнаружить что именно нужная dll загрузилась? по названию, размеру, сигнатуре, и т.д. 2. Как записать в dll нужные байты? это зависит от того будешь ты выполняться в середине процесса или снаружи. если внутри через VirtualProtect меняешь атрибут странички на PAGE_EXECUTE_READWRITE и MOV… если снаружи то ReadProcessMemory, WriteProcessMemory… ![]() |
|
Создано: 01 августа 2008 10:14 · Личное сообщение · #3 |
|
Создано: 01 августа 2008 11:55 · Личное сообщение · #4 ewgeny1987 При исключении LOAD_DLL_DEBUG_EVENT заполняется структура LOAD_DLL_DEBUG_INFO и в ней уже смотришь имя библиотеки. Точнее на сколько я помню там будет лежать адрес по которому будет лежать указатель на имя библиотеки в памяти. Потом спомощью ReadProcessMemory читаешь этот указатель и потом ещё раз ReadProcessMemory но уже с адресом этого указателя. Я сам офигиваю от того как объяснил, так что если будут вопросы, давай свою аську. SergX Не, он не хукает, а отлаживает прогу в отладочном цыкле. Хотя в лодыре реально будет просто похукать LoadLibraryA и смотреть имя загружаемой библиотеки ----- Research For Food ![]() |
|
Создано: 01 августа 2008 12:28 · Личное сообщение · #5 |
![]() |
eXeL@B —› Программирование —› как сделать лоадер который может патчить dll программы |