В этой статье я попробую описать метод исследования программ, которые я бы назвал "нежным" в отличие от "жестких" методов, описанных ранее и включающих изменение используемых программой модулей.
Для начала скопируйте следующий пример: GentleHack_9x.zip
Откройте архив, сохраняя структуру
каталогов. У Вас должна получиться
поддиректория "GentleHack_9x\Release". Теперь
давайте запустим NOTEPAD.EXE, наберем что-нибудь
в нем и попробуем его закрыть Alt-F4.
Теперь, собственно, разберемся, что же
случилось? А случилось вот что: только что
вызов функции MessageBoxW() был перехвачен
программой samp1.exe и выдает что-то
странное. Как это произошло? Все довольно
просто. Обратите внимание на поддиректорию
"GentleHack_9x\Release". Там находяться
следующие файлы:
Что это?
samp1_inj.dll
syringe.dll
samp1.exe
samp1.exe - это некая программа, которая
инициализирует процессe "заражения"
samp1_inj.dll - это, собственно, "зараза",
некий код, который встраивается в NOTEPAD.EXE
(или еще что-нибудь)
| syringe.dll - это шприц, которым вся эта
"зараза" будет впрыснута в NOTEPAD.EXE. | |
Данный пример перехватывает только
вызовы к DLL, которые уже загружены
программой к моменту запуска. Но кто
мешает перехватить CreateProcess и/или LoadLibrary
и заражать позднее загружаемые DLL?
Данный пример не любит компиляций samp1.exe
и samp1_inj.exe с BoundsChecker'ом. Ну это ясно
почему.
| Модификация данного примера для "заражения"
уже загруженой программы (для Windows NT) - GentleHack_NT.zip
| Данный пример позволяет изменить
поведение для некой конкретной программы
и на некое определенное время. В
следующей статье я опишу syringe.dll и
приведу ее исходный текст.
| Дополнительные примеры Вы найдете на OK
Thinking Software Web Page или на OK
Thinking Software Web Page (mirror) | |
P.S. Эти материалы публикуются ТОЛЬКО в целях обучения. Автор не несет никакой ответственности за любой ущерб, нанесенный в результате использования информации и/или инструментов, представленных здесь.
P.P.S. Коллеги! Давайте уважать друг друга и не мучить "братьев наших меньших"...
Good Luck...