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

 eXeL@B —› Вопросы новичков —› как найти где в потоке произошел вызов команды CALL
Посл.ответ Сообщение

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

Создано: 19 июля 2011 17:47
· Личное сообщение · #1

где то в дочернем потоке выполняется проверка данных на сервере, пока эта проверка не завершится
основной поток после нажатия OK находится в процессе ожидания получения DoEvents

в дочернем потоке происходит вызов функции командой CALL, как мне отловить это место где происходит вызов функции CALL
в OllyDbg видно что висит 5 потоков

все что мне удалось найти
выполнение функции происходит после первого джампа

JMP 01A5D8E0
JMP 01A61B50

он отправляет выполняться процедуру 01A5D8E0
PUSH EBP
MOV EBP, ESP
SUB ESP, 18
...

есть соседний вызов 01A61B50 он выполняется в основном потоке командой
CALL DWORD PTR DS:[ECX+7BC]

поиск команды изменение смещения ни к чему не привел 7B4,

как мне перепрыгнуть в другой поток и отловить выполнение вызова CALL , который перенаправляется джампом JMP 01A5D8E0?



Ранг: 590.4 (!), 408thx
Активность: 0.360.18
Статус: Модератор

Создано: 19 июля 2011 17:56
· Личное сообщение · #2

Дебаж идой. Брякаешься в основном потоке, переключаешься на другой поток и смотришь контекст и стек.
Скорей всего основной поток висит на WaitForMultipleObjects, а дочерний дергает евент.

-----
старый пень




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

Создано: 19 июля 2011 18:02
· Личное сообщение · #3

как это в Ида сделать?



Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 19 июля 2011 20:11 · Поправил: Hexxx
· Личное сообщение · #4

Вывести окно с потоками, если вдруг закрыто. По-умолчанию оно в дебагере есть. Щелкнуть на интересующий поток.

-----
Реверсивная инженерия - написание кода идентичного натуральному




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

Создано: 19 июля 2011 21:58 · Поправил: Garfish
· Личное сообщение · #5

ида не грузит выдает ошибку "floating point inexact result"


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


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