Сейчас на форуме: _MBK_ (+6 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Как правильно ставить бряк Conditional log (Ollydbg 2.x) |
Посл.ответ | Сообщение |
|
Создано: 07 апреля 2011 11:56 · Поправил: Jeka911 · Личное сообщение · #1 |
|
Создано: 07 апреля 2011 13:00 · Личное сообщение · #2 |
|
Создано: 07 апреля 2011 13:41 · Личное сообщение · #3 Знает, по крайней мере в документации к 2.0 есть пример с хардваре бряком, на 20 странице. Но он у меня почему то не срабатывает. ![]() ![]() |
|
Создано: 07 апреля 2011 15:04 · Личное сообщение · #4 |
|
Создано: 07 апреля 2011 15:35 · Поправил: Jeka911 · Личное сообщение · #5 Ничего не меняется, бряк не происходит. Вижу только в логе как мимо проскакивает WM_LBUTTONUP (как в первом посте). ![]() |
|
Создано: 07 апреля 2011 18:24 · Личное сообщение · #6 |
|
Создано: 07 апреля 2011 19:44 · Поправил: Jeka911 · Личное сообщение · #7 Usulgurt Я в этом пока не шарю. Можно подробней. Хотя думаю сам начну, вот что я делаю, а Вы возможно скажите что не так. Использую ollydbg 2.01 alpha 2 Win 7 x64 Открыл CRACKME (от Круехеда), ставлю бряк на &USER32.TranslateMessage вида [[ESP]+4]==WM_LBUTTONUP жду останова на отпускание кнопки мыши, в логе проскакивают msg: wm_keyup, wm_systimer... и тд. ![]() |
|
Создано: 07 апреля 2011 23:21 · Поправил: gena-m · Личное сообщение · #8 Usulgurt пишет: А может у тебя отладочные регистры прога стёрла. Отладочные регистры не нужны в этом случае. Jeka911 Что то здесь не то, я так понимаю нужно в начале вычислить адрес TranslateMessage поставить на него бряк F2 (он срабатывает?), дальше зайти в Conditional log и там скорректировать условия остановки. Вижу только в логе как мимо проскакивает WM_LBUTTONUP Больше похоже, что не выставлен Pause program на пункт On condition. ----- Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше ![]() |
|
Создано: 08 апреля 2011 00:27 · Поправил: Jeka911 · Личное сообщение · #9 gena-m Ставлю бряк TranslateMessage непосредственно на вход процедуры MOV EDI,EDI (F2) он срабатывает (но почему то стек пустой, только точка возврата, или так и должно быть... непомню) Далее ставлю Conditional log: [[ESP]+4]==WM_LBUTTONUP Pause: On condition, остальное Always Проскакал log: Code:
![]() |
|
Создано: 08 апреля 2011 10:17 · Поправил: gena-m · Личное сообщение · #10 он срабатывает (но почему то стек пустой, только точка возврата, или так и должно быть... непомню) Да, действительно попробовал во второй Олли в стеке хрень какая то, но если нравиться работать во второй Олли то продолжай, попутно понял, что неправильно условие сделано поскольку в стеке по адресу ESP+4 содержится адрес структуры, а структура не может быть равна WM_LBUTTONUP, поэтому условие должно быть MSG==WM_LBUTTONUP. ----- Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше ![]() |
|
Создано: 08 апреля 2011 10:29 · Личное сообщение · #11 Тёмные вы люди. [ESP+4] хранит адрес структуры MSG. Соответственно, если вы хотите выставить условный бряк на Жмём Shift+F2 и вписываем [[ESP+4]+8] == WM_LBUTTONUP. Аппаратники тут действительно ни при чём. Да, кстати, 1.10 поддерживает WM_LBUTTONUP, и не требуется вписывать численные значения констант. ----- Stuck to the plan, always think that we would stand up, never ran. ![]() |
|
Создано: 08 апреля 2011 10:47 · Поправил: Jeka911 · Личное сообщение · #12 gena-m, ARCHANGEL спасибо за помощь!!! Действительно условие должно выглядеть так [[ESP+4]+8] только не 8 а 4, в MSGA первый идет hWnd, второй Msg. Теперь я хоть понял смысл записи стольких скобок. ![]() Спасибо ещё раз! ![]() |
|
Создано: 08 апреля 2011 13:59 · Личное сообщение · #13 Jeka911 Да, точно 4 - очепяточка вышла. ----- Stuck to the plan, always think that we would stand up, never ran. ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Как правильно ставить бряк Conditional log (Ollydbg 2.x) |