Сейчас на форуме: bartolomeo, vasilevradislav, rmn, Magister Yoda (+6 невидимых) |
![]() |
eXeL@B —› Программирование —› Улучшенная Proxy DLL |
Посл.ответ | Сообщение |
|
Создано: 19 июня 2008 12:44 · Поправил: Polox · Личное сообщение · #1 Бывает, что противоотладочный средства мешают нормально дебажить код отладчиками, но нормально относятся к приему, о котором я хочу рассказать. Итак путь приложение содержит библиотеки dll функции которых вызывают у вас неподдельный интерес ![]() 1) Предлагаемый подход прост - по интересующей Вас dll-ке ым получаем ее export. 2) делаем dll-ку клон, которая реализует export dll-ки жертвы 3) переименовываем dll жертвы, а на ее место ложим свою. 4) каждый вызов внешних функций начинается с нашего кода, который может пробежаться по стеку и регистрам и запомнить значения которые предавались в функцию. Идея взята отсюда www.codeproject.com/KB/DLL/CreateYourProxyDLLs.aspx поэтому мануал по поводу того как запускать и как генерировать экспорт писать не буду. После того, как приложение использующее dll-ку отработает - в текущем каталоге создастся dll_log.txt. Если будут вопросы - с радостью отвечу. ![]() ![]() |
|
Создано: 19 июня 2008 13:03 · Личное сообщение · #2 |
|
Создано: 19 июня 2008 14:26 · Личное сообщение · #3 soho, всегда пожалуйста. Вроде бы я делал изменения на основе последнего оригинала. Я брал оригинальный код месяца полтора назад. Неужели уже поменяли ? Не знаете что именно поменялось ?(завтра сам почитаю). Вот это не совсем понял "Так, чтоб сразу и компилил.". Вы хотели чтобы я выложил скомпилированный свой результат ? Это можно, но обычно люди относятся к exe осторожно ![]() ![]() |
|
Создано: 19 июня 2008 17:32 · Личное сообщение · #4 |
|
Создано: 19 июня 2008 17:40 · Личное сообщение · #5 |
|
Создано: 19 июня 2008 21:06 · Поправил: asd · Личное сообщение · #6 |
|
Создано: 19 июня 2008 23:24 · Личное сообщение · #7 asd, thx. soho, возможно имеет место недопонимание между нами ![]() Я как вы поняли поменял исходник и теперь он генерирует прокси dll, которая может логировать параменты функций с call конвенцтями __cdecl, stdcall итд. теперь по поводу компиляции. Еще раз проверил у меня все компилируется делаю так: proxydll_creator.exe dbl.dll dbl.dll.txt __stdcall dbl_or.dll dbl.cpp dbl.def cl /LD dbl.cpp /link /DEF:dbl.def получаю на выходе dll-ку. Каюсь, я не пробовал строить это ни борландом который изначально поддерживал автор ни чем либо еще. Но по вашему посту я не совсем понял где увас проблема. Лог вывода компилера был бы полезен. Еси вам нужно, чтобы строилось под борландом - полечите траблы и высылайте апдейт. ![]() Я строил только под MSVC 2005 ![]() |
|
Создано: 28 июня 2008 14:28 · Личное сообщение · #8 1)Добавил поддержку __fastcall-а(значения eax, edx, ecx логируются, также предпринимается попытка интерпретировать их как адреса и залогировать память по адресам) 2)Добавил логирование указателей после вызова функции жертвы. Теперь можно увидеть, что возвращает функция когда она выполнилась. Пример лога библиотеки с которой щас работаю есть в архиве. Названия функций изменены. лог называется log.txt. Вы правда не сможите там найти нормальных строк. Умники "зашифровали" их. Да это и не важно. Просто зацените как эта штука работет. Будут вопросы пишите. ![]() ![]() |
![]() |
eXeL@B —› Программирование —› Улучшенная Proxy DLL |