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

 eXeL@B —› Вопросы новичков —› Как поставить бряк на вызов функций из конкретного подгружаемого модуля .dll ?
Посл.ответ Сообщение

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

Создано: 05 сентября 2006 22:04
· Личное сообщение · #1

???



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 05 сентября 2006 23:08
· Личное сообщение · #2

uav_2006 пишет:
???

В каком отладчике ?! В олли в окне CPU правый клик search for -> Name in current module
Ищешь имя и ставишь бряк.



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

Создано: 05 сентября 2006 23:23
· Личное сообщение · #3

tundra37
Да нет, я не про то. Программа подгружает целую кучу dll библиотек, а я знаю, что конкретно в одной происходит проверка лицензирования, но не знаю в каком месте. Как мне отловить обращения к каждой функции из этой библиотеки?



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 05 сентября 2006 23:52
· Личное сообщение · #4

uav_2006 пишет:
Как мне отловить обращения к каждой функции из этой библиотеки?

В олли открываешь карту памяти и ставишь бряк на доступ к кодовой секции этой dll. Только не забывай этот бряк отменять, когда длл будешь трассировать. А кстати можно включить условный бряк на диапазон адресов - condition log.



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

Создано: 06 сентября 2006 00:08
· Личное сообщение · #5

tundra37 В олли открываешь карту памяти и ставишь бряк на доступ к кодовой секции этой dll
При открытии проги в олли, в окне карты памяти только стандартные виндовские, типа kernel32, ntdll и т.д.
А остальные появляются потом, по мере загрузки и, некоторые, выгружаются затем.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 06 сентября 2006 00:42
· Личное сообщение · #6

uav_2006 пишет:
А остальные появляются потом, по мере загрузки и, некоторые, выгружаются затем.

Ну и в чем сложность ?! Ставишь бряк на loadlibrary и после загрузки ставишь бряк на длл. Все равно поставить бряк на незагруженную функцию нельзя. Можно написать скрипт или даже плугин - вперед и с песнями. Ну и старый дедовский способ : в каждой функции запоминаешь первый байт и заменяешь его CC. Ловишь этот бряк, заменяшь байт и т.д. и т.п.



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

Создано: 06 сентября 2006 22:13 · Поправил: uav_2006
· Личное сообщение · #7

А вот еще вопрос:
Может ли Олли ставить бряк не только на функции кода отлаживаемого приложения, а вообще на все дочерние процессы, запускаемые этим приложением?



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 07 сентября 2006 02:22
· Личное сообщение · #8

uav_2006 пишет:
на все дочерние процессы,

По-моему, только на thread-ы. При запуске нового процесса придется запускать вторую олли, причем придется кое-что ручками делать при запуске и подхвате.


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


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