Как отловить проверку чекбокса?

Тема в разделе "WASM.RESEARCH", создана пользователем AndRay, 7 янв 2008.

  1. AndRay

    AndRay New Member

    Публикаций:
    0
    Регистрация:
    16 сен 2007
    Сообщения:
    14
    Ставлю галочки в чекбоксах. Прога потом проверяет, правильно ли я их расставил. Как найти то место, где она сверяет с правильной расстановкой? Полуьзуюсь Olly (Snd).
     
  2. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    бряк на
    IsDlgButtonChecked
    а также SendMessage/SendDlgItemMessage с параметром BM_GETCHECK
     
  3. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    прога может ловить BM_CLICK и изменять состоянее внутренего флага.
     
  4. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Freeman
    ну клик поймала, дальше нужно узнать собственно в каком состоянии чекбокс ;)
     
  5. AndRay

    AndRay New Member

    Публикаций:
    0
    Регистрация:
    16 сен 2007
    Сообщения:
    14
    - и главное - сравнить, в каком он должен быть состоянии. Т.е. где-то хранится правильное состояние. Вот это я и ищу. Спасибо, сейчас попробую поставить бряки.
    Кстати, адрес изменения состояния бокса я нашел. Ставлю на нее бряк по части обращения. А дальше идет запутанная процедура проверки правильности. И то не уверен, что это она. В регистре хранится правильное значение - и если с ним не совпадает, то ой. Я так эту процедуру понял. А мне бы добраться до того места, где они ("правильные галочки") все лежат. Т.е. чтобы не сверять по регистру каждый ответ (и то я не понял толком, что оно должно там лежать, т.к. было пусто), а сразу увидеть правильные ответы на все вопросы.
     
  6. W4FhLF

    W4FhLF New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2006
    Сообщения:
    1.050
    http://www.wasm.ru/article.php?article=ollydbg12

    Там описывается как поставить условный бряк.

    Тебе надо перейти Ctrl-G > SendMessageA/W > На первой инструкции в процедуре ПКМ > Breakpoint > Conditional log > Далее делаешь так:
    [​IMG]

    Ну а как брякнешься смотри стек вызовов или брякайся на секции кода приложения.