Сейчас на форуме: bartolomeo, vasilevradislav, rmn, Magister Yoda (+6 невидимых)

 eXeL@B —› Программирование —› Улучшенная Proxy DLL
Посл.ответ Сообщение

Ранг: 7.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 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.


Если будут вопросы - с радостью отвечу.

25dc_19.06.2008_CRACKLAB.rU.tgz - proxydll_creator.zip



Ранг: 30.6 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 19 июня 2008 13:03
· Личное сообщение · #2

Polox, спасибо за напоминание - новое это хорошо забытое старое
Только вот вопрос: отчего же было не взять последнюю версию упомянутого оригинала? Так, чтоб сразу и компилил.



Ранг: 7.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 19 июня 2008 14:26
· Личное сообщение · #3

soho,
всегда пожалуйста.
Вроде бы я делал изменения на основе последнего оригинала. Я брал оригинальный код месяца полтора назад. Неужели уже поменяли ? Не знаете что именно поменялось ?(завтра сам почитаю).

Вот это не совсем понял "Так, чтоб сразу и компилил.". Вы хотели чтобы я выложил скомпилированный свой результат ? Это можно, но обычно люди относятся к exe осторожно



Ранг: 30.6 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 19 июня 2008 17:32
· Личное сообщение · #4

Все просто - последняя версия оригинала 2.0 и в ней сгенеренный исходник компилится (см. "Using the program")




Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 19 июня 2008 17:40
· Личное сообщение · #5

Чего то я не очень понял , что это дает , смысл ?

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube




Ранг: 162.2 (ветеран)
Активность: 0.090
Статус: Участник

Создано: 19 июня 2008 21:06 · Поправил: asd
· Личное сообщение · #6

mak
Это своеобразный способ хукинга апи. без всяких сплайсов и замен адресов в импорте/экспорте.



Ранг: 7.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 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



Ранг: 7.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 28 июня 2008 14:28
· Личное сообщение · #8

1)Добавил поддержку __fastcall-а(значения eax, edx, ecx логируются, также предпринимается попытка интерпретировать их как адреса и залогировать память по адресам)
2)Добавил логирование указателей после вызова функции жертвы. Теперь можно увидеть, что возвращает функция когда она выполнилась.

Пример лога библиотеки с которой щас работаю есть в архиве. Названия функций изменены. лог называется log.txt. Вы правда не сможите там найти нормальных строк. Умники "зашифровали" их. Да это и не важно. Просто зацените как эта штука работет. Будут вопросы пишите.


121e_28.06.2008_CRACKLAB.rU.tgz - proxydll_creator.zip


 eXeL@B —› Программирование —› Улучшенная Proxy DLL
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати