x64dbg: Пустое поле Message Breakpoint

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

Данная заметка относится к версии дебаггера для работы с приложениями x32, поэтому в заголовке стоило указать x32dbg, но привычнее слуху x64dbg, значит оставлю его.

 

Для этого используется вкладка Handles. На ней можно было для определённого класса задать точку останова (Breakpoint). В том примере точка останова задавалась при нажатии левой клавиши мыши — в списке нужно было выбрать WM_LBUTTONDOWN.
У меня же была такая проблема — список был пустой:
x64dbg: Пустое поле Message Breakpoint
Сначала я подумал, что это нормально и нужно было просто вписать нужную константу вручную. Сделав это, я всё равно ничего не отловил, тогда стал «ругать» эту сборку. Скачал другую, но там было то же самое. Затем я скачал совсем старую версию x64dbg (x32dbg), но решил не записывать её в Program Files, а запустил напрямую из папки загрузок, и она заработала! Я решил найти последнюю «рабочую» версию, но выяснилось, что они все работали. После разборок я обнаружил следующее…
Поскольку я раскладывал всё по полочкам, то в данном случае версию x32dbg я скопировал в Program Files (x86), а x64dbg в папку Program Files, а все остальные файлы я не копировал. То есть у меня уже не было папок уровня выше: themes, translations. Кроме этого не было файлов errordb.txt, exceptiondb.txt, mnemdb.json, ntstatusdb.txt, x64dbg.chm, x96dbg.exe. Но главное, не было файла winconstants.txt! Именно в нём хранятся все нужные значения.

Решение

Для решения этой проблемы есть два варианта:
1. Работать из папки snapshot_YYYY-MM-DD_HH-mm\release\x32
2. Если уж разносить папки как это сделал я, то необходимо, чтобы уровнем выше был скопирован файл winconstants.txt. Например в моём случае, файл должен быть скопирован сюда:
«C:\Program Files (x86)\winconstants.txt»

Поскольку это создаёт большую неразбериху, то буду оставлять только одну папку x96dbg (у этого варианта есть ещё один плюс — будут работать темы):
C:\Program Files\x96dbg
x64dbg: Пустое поле Message Breakpoint

Вот теперь при вызове диалога Message Breakpoint, сразу подставляется результат:
x64dbg: Пустое поле Message Breakpoint
Список можно раскрывать и выбирать нужное значение:
x64dbg: Пустое поле Message Breakpoint



Подписаться
Уведомление о
guest
0 Комментарий
Oldest
Newest Most Voted
Inline Feedbacks
View all comments