Интерфейс отладчика OllyDbg

Почему-то всегда думал, что в нижнем правом углу находится окно стека. А там оказывается еще и "куча".


А нижнее широкое окно это дамп.

По умолчанию отладчик начинает анализ программы сразу после загрузки.

Вот эти вот красные вставки в код (за диалоговым окном) это и есть результаты анализа.

Может пригодится отключить эту опцию, если в друг в код встроены приемы анти-отладки.

Иногда отладчик может принимать код за данные. В этом случае надо выключить анализ: ПКМ - Analysis - Remove analysis from module.

Подсветка это хорошо:


В окне регистров можно отображать по ПКМ FPU, MMX, 3DNow! и debug регистры. Какое-то взаимоисключающее отображение. Почему нельзя было отображать их все сразу?

В окне стека можно отображать информацию связанную с регистрами ESP или EBP (ПКМ - Go To ESP/EBP).

По умолчанию окно дампа отображает 8-байтовый Hex/ASCII. Но есть и другие форматы: дизассемблированный код, текст, short, long, float.


А вот функция Special - PE header в окне дампа может оказаться полезной. Видимо она отображает PE заголовок.

Панель лога (L) отображает инфу о запуске и об условных точках останова. Лог можно писать в файл (ПКМ - Log to file).

Панель модулей (E - EXECUTABLES) показывает список модулей, которые использует программа: exe, dll, ocx (ActiveX формы).

Панель памяти (M) отображает память занятую прогой: секции приложухи, либы использующиеся процессом, стек, секции занятые системой. Зачастую программы занимают новые секции в процессе работы. По памяти можно искать, поставить брикпоинт на доступ или запись, изменить права доступа.

Панель потоков (T) показывает список нитей (потоков).

Панель окон (W) отображает окна программы. Если программа не выполняется, то тут будет пусто.

Панель хэндов (H) показывает хэндлы.

Панель C (CPU) - это главная панель.

Панель патчей (/) показывает наложенные на программу патчи.

Панель стека вызовов K (CALL STACK) показывает список вызовов, которые нам встретились до того места, где программа остановилась. 

Панель B отображает список обычных точек останова. Здесь нет ни точек останова аппаратного обеспечения, ни точек останова памяти, только обычные.

Панель R - список ссылок.

Панель ... - трассировка. Команда RUN TRACE.

Чтобы сделать OllyDbg JIT-отладчи нужно зайти в меню Options - Just-in-time debugging. По умолчанию в Windows используется dr.watson (drwtsn32). После установки Delphi 7 JIT-отладчиком становится bordbg70.exe.