Сейчас на форуме: vsv1, _MBK_ (+4 невидимых)

 eXeL@B —› Вопросы новичков —› Как поставить бряк на dll?
Посл.ответ Сообщение

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

Создано: 10 мая 2007 06:07
· Личное сообщение · #1

У меня есть программа, триал которой заключается в том, что она дает запусткаться только 30 раз. Через filemon я нашел dll, в которой после замены 4 байт программа продолжает вываливать окно, что это триал, но теперь дает запускаться сколько-то там милионов раз. Теперь мне хочется ее доломать красива, чтобы никакого окна она вообще не запускала. Проблема в том, что сам exe-шник практически не содержит кода. Как я понял, он стартует, загружает dll, и все функции по работе с программой идут через эту dll (это уже совсем другая dll). При завершении работы прога снова "выходит" в основной модуль и вызывает ExitProcess. Соответственно и окно с сообщение о триале вызывается из dll.
Так вот, я не знаю, как мне поставить бряк на точке входа в dll. Это первое.
А второе, я все-таки научился тормозить прогу на работе в dll (правда, очень коряво), вижу там MessageBox, другие участки кода, которые нужно исследовать на предмет лома. Ставлю на все это дело бряки, но после рестарта программы ничего не происходит, все установленные точки куда-то теряются, как будто я ничего и не ставил на бряк.
А "торможу" прогу в dll я так: в olly запускаю анимацию без входа в call, и как только в отладчике в надписи окна вижу, что выполняется код моей dll, жму F12. Соответственно кучу команд отладчик уже отработал, попытка поставить на этот код бряки и рестарт дает проблему номер2, описанную выше...
Может кто-то может дать ссылку на хорошую статью по отладке dll под мои задачи? - без разницы, под оли или айс. Олли я использую пока просто потому, что читаю книгу "Реверсинг и защита программ от взлома", где автор все делает на олли и довольно хорошо описывает этот отладчик. Вот дойду до Касперски, сяду за айс ))



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

Создано: 10 мая 2007 06:44
· Личное сообщение · #2

Тыкаешь на длл правой кнопкой мыши и жмёшь Open with OllyDbg. Такой пункт появится в менюшке если в оле в Options->Add to Explorer нажать на Add OllyDbg to menu in Windows Explorer




Ранг: 85.4 (постоянный)
Активность: 0.080
Статус: Участник

Создано: 10 мая 2007 14:35
· Личное сообщение · #3

Юзай Hardware Brakpoint в Оле. Они будут работать даже после перезапуска самого отладчика
Breakpoint>>Hardware, on execution

-----
radio uno in ibisa ...




Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 10 мая 2007 18:02
· Личное сообщение · #4

Icelot пишет:
Юзай Hardware Brakpoint в Оле. Они будут работать даже после перезапуска самого отладчика

Будет полезно если только DLL загрузится по тому же адресу - прим.

-----
Я медленно снимаю с неё UPX... *FF_User*





Ранг: 85.4 (постоянный)
Активность: 0.080
Статус: Участник

Создано: 10 мая 2007 22:30
· Личное сообщение · #5

AlexZ так точно Но желательно конечно отладчик не перезапускать, а перед перезапуском программы фотошоп не загружать

-----
radio uno in ibisa ...




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

Создано: 11 мая 2007 06:38
· Личное сообщение · #6

Icelot пишет:
Но желательно конечно отладчик не перезапускать, а перед перезапуском программы фотошоп не загружать

Причём здесь это? Ни разу не видел, чтобы на одной и той же машине в одной и той же проге библы грузились по разным адресам.




Ранг: 85.4 (постоянный)
Активность: 0.080
Статус: Участник

Создано: 11 мая 2007 07:28
· Личное сообщение · #7

asd у меня такого тоже не было. Но я на всякий случай сказал, мало ли бывает..

-----
radio uno in ibisa ...




Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 11 мая 2007 16:34
· Личное сообщение · #8

asd пишет:
Ни разу не видел, чтобы на одной и той же машине в одной и той же проге библы грузились по разным адресам.

После первой загрузки (до перезагрузки форточек) очень часто dll размещается не по ImageBase.

-----
Всем привет, я вернулся




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

Создано: 11 мая 2007 20:56
· Личное сообщение · #9

Bitfry
Спецефичная ситуация , надо как-нибудь посмотреть.

А вообще я не про это говорил, а про зависимость от запуска фотошопов разных.



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 11 мая 2007 22:22
· Личное сообщение · #10

asd пишет:
А вообще я не про это говорил, а про зависимость от запуска фотошопов разных.

Это конечно.
По идее адреса в пространстве каждого процесса можно формировать любые (в допустимых пределах для user mode), так что зависимости VA между процессами быть не должно.
А вот внутри процесса по непонятным для меня причинам dll в первый раз проецируется на ImageBase, а при следующей загрузке куда угодно, только не туда же. Уже писал об этом не один раз, так и не понял в чём фокус. Может быть, тупая дефрагментация VA или по какой-то причине загрузчику удобнее связывать VA с кешированной dll без учёта ImageBase.

-----
Всем привет, я вернулся



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


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