1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Брэйкпоинт по нажатию кнопки мыши.

Тема в разделе "WASM.BEGINNERS", создана пользователем vldi75slav, 23 дек 2019.

  1. vldi75slav

    vldi75slav New Member

    Публикаций:
    0
    Регистрация:
    23 дек 2019
    Сообщения:
    6
    Здравствуйте. Я хочу научиться дезассемблировать приложения. И сейчас мне нужно узнать какие какие команды выполняет приложение при нажатии в нём левой кнопки мыши. Для этого мне нужно создать точку останова когда будет нажата эта кнопка в работающей программе. Какой отладчик может справиться с этой задачей, и как её реализовать?
     
  2. ormoulu

    ormoulu Active Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    457
    Какая операционная система у вас?
     
  3. vldi75slav

    vldi75slav New Member

    Публикаций:
    0
    Регистрация:
    23 дек 2019
    Сообщения:
    6
    Windows 7 Максимальная (x64)
     
  4. Bedolaga

    Bedolaga Member

    Публикаций:
    0
    Регистрация:
    10 июл 2019
    Сообщения:
    118
    Писать бы правЕльно научиться сначала....
    По теме:
    Как ставить БП на события - достаточно описания Нарвахи, если непонято - вряд ли кто-то сможет доступней.
    Если понято, но не получается, значит с АПП "что-то не так"... типа не голое АПИ....
    КарочЕ-е-е-е-е: подробности про АПП в студию!
     
  5. ormoulu

    ormoulu Active Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    457
    Приложение нативное? WinAPI?
     
  6. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.030
    "хочу научиться дизассемблировать программы" и "хочу знать какие команды выполняет приложение при нажатии", а как эти две вещи связаны? Вероятней всего элемент интерфейса узнает о левом клике из обработчика оконных сообщений на событиях WM_LBUTTONDBLCLK,WM_LBUTTONDOWN,WM_LBUTTONUP. Учитывай, что у дочерних элементов основного окна могут быть свои обработчики.
     
    ormoulu нравится это.
  7. vldi75slav

    vldi75slav New Member

    Публикаций:
    0
    Регистрация:
    23 дек 2019
    Сообщения:
    6
    Приложение в exe файле. Я не знаю как оно писалось. У меня есть только ассемблерный код. Открывал отладчиком OllyDbg. Может он подойдёт для этих целей?
    --- Сообщение объединено, 23 дек 2019 ---
    Я просто хочу знать можно ли в отладчике создать точку останова по событию (нажатие левой клавиши мыши) в приложении запущенном этим отладчиком?
     
  8. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    2.987
  9. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.030
    Если в ольге жмешь alt-w, находишь окно, левый клик в которое хочешь ловить, берешь адрес из столбца ClsProc, conditional бряк в этом месте будет ловить нужные тебе события, код wmsg второй аргумент (DWORD[esp + 8])
     
    ormoulu нравится это.
  10. ormoulu

    ormoulu Active Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    457
    Подойдет и олли, и любой другой под вин, хоть ТД (при условии что приложение поверх "голого" винапи работает, конечно). Вопрос в том, чтобы понимать, что это за "событие" - нажатие клавиши, как оно обрабатывается, где обрабатывается.
    Рискну посоветовать начать с Петзольда "Программирование для Windows 95", глава 6 "Мышь".

    Если там .Net какой-нибудь, дельфи или VB, все гораздо сложнее.
     
  11. Rel

    Rel Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    2.473
    Тут наоборот проще, открываешь любым дотнет отладчиком/декомпиллером, находишь нужный тебе класс и обработчик ивента в нем. Если обфусцирован, то канеш посложнее, но все равно гораздо проще, чем с нативным кодом, или того хуже - каким-нить Qt например.
     
    Последнее редактирование модератором: 24 дек 2019
  12. TrashGen

    TrashGen ТрещГен

    Публикаций:
    0
    Регистрация:
    15 мар 2011
    Сообщения:
    656
    Адрес:
    подполье
    Да, действительно, сперва надо написать на ассемблере своё окно с обработчиком сообщений от мыша, найти в олли где ставить брейк в этом своём обработчике, поставить брейк, жмакнуть мышом по окну и получить профит. А сферические в вакууме ехе-фаелы могут делать это десятком других способов, понять которые проще всего НАПИСАВ И ОТЛАДИВ СОТНИ СВОИХ ЛИЧНО НАПИСАННЫХ ПРОГРАММ.
     
    Indy_ нравится это.
  13. vldi75slav

    vldi75slav New Member

    Публикаций:
    0
    Регистрация:
    23 дек 2019
    Сообщения:
    6
    TrashGen, Может посоветуете, с чего начать? Я изучил программу Spy++. Нашёл все сообщения связанные с окном моего приложения. А вот что с ними делать....? Я раньше писал на ассемблере для ZX-Spectrum. Вот теперь надо как-то с PC разобраться.
     
  14. Bedolaga

    Bedolaga Member

    Публикаций:
    0
    Регистрация:
    10 июл 2019
    Сообщения:
    118
    vldi75slav, пардоньте, бога ради, что вмешиваюсь, но как вы нашли "сообщения связанные с окном моего приложения"?
    Этого же в принципе невозможно сделатсь...
     
  15. vldi75slav

    vldi75slav New Member

    Публикаций:
    0
    Регистрация:
    23 дек 2019
    Сообщения:
    6
    Вот эти сообщения
     

    Вложения:

    • NoName.jpg
      Размер файла:
      3,5 МБ
      Просмотров:
      49
  16. Bedolaga

    Bedolaga Member

    Публикаций:
    0
    Регистрация:
    10 июл 2019
    Сообщения:
    118
    vldi75slav, молодец.
    А я погнал, тогда.
    :suicide:
     
  17. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.030
    WM_MOUSEMOVE это про перемещения курсора на фоне окна, а не про левый клик.
     
  18. ormoulu

    ormoulu Active Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    457
    С Петзольда начинайте.
    Или попробуйте Зубкова или Икзелиона, там сразу на ассемблере.

    Но программу все-таки выложите сюда лучше на случай если там фреймворк какой. Также можно воспользоваться чем-то вроде PEiD, но я не в курсе что из них сейчас модно и работает.
     
  19. TrashGen

    TrashGen ТрещГен

    Публикаций:
    0
    Регистрация:
    15 мар 2011
    Сообщения:
    656
    Адрес:
    подполье
    vldi75slav, да вроде уж посоветовали всё чо можно. Ябы рекомендовал посмотреть ицзелиона. Создание окон и работа с мышью. Увидите где и как курятся циклы обработок оконных сообщений, что такое сообщения от мыши. Ну и программу свою также можете показать, подскажут, что и как с ней можно сделать, чтобы найти то, что вам нужно
     
  20. vldi75slav

    vldi75slav New Member

    Публикаций:
    0
    Регистрация:
    23 дек 2019
    Сообщения:
    6
    Спасибо всем, кто ответил на мой вопрос. Буду изучать литературу по программированию. Лучше мне во всём самому разобраться. Есть, с чего начать. Всех - с наступающим!