Как я могу увидеть данные кучи в ollydbg?


2

У меня есть скомпилированный двоичный код, который выделяет массив символов в кучу через HeapAlloc(). Я хотел бы иметь возможность видеть распределенный динамический массив в куче, используя Ollydbg, чтобы иметь возможность отслеживать его и видеть, как он изменяется.

До сих пор я пытался:

  1. Вставьте уникальную строку, например, r00tr00tr00tr00t...r00t через бинарный **
  2. Перейти к памяти View (ALT + M)
  3. Поиск (CTRL + B) для ASCII: r00t

Я всегда не найти его. Я новичок в этом, так это шаги, которые я предпринял в правильном направлении? Если нет, как я могу найти строку в куче?

** это вводится с нормальным потоком программы, оно принимает данные от пользователя. Допустим, это серийный номер для instanc, который помещается в кучу, используя HeapAlloc

2

Существует два плагина ollydbg, которые могут помочь вам увидеть данные кучи.

1- Heap Vis by Pedram Amini
Возможно, вы заметили призрачный вариант «Куча» в меню «Вид» в OllyDBG. Эта функция доступна только в операционных системах под управлением Windows 95 и должна отображать список выделенных блоков памяти. Olly Heap Vis плагин был написан, чтобы обеспечить эту функциональность и более на всех современных операционных системах Windows, таких как Windows 2000, XP и 2003 OllyDbg Heap Vis плагин предоставляет следующие функциональные возможности:

  • Просмотр кучах
  • Поиск кучи
  • Перейти к кучного Chunk
  • Создание Heap Визуализация

enter image description here http://www.openrce.org/downloads/details/1/Heap_Vis

2- OllyHeapTrace by Stephen Fewer
OllyHeapTrace (Written in 2008) является плагином для OllyDbg (версия 1.10) для отслеживания операций кучи, выполняемых процессом. Он будет отслеживать распределения кучи и освобождать для нескольких куч, а также такие операции, как создание или уничтожение куч и перераспределение. Все параметры, а также возвращаемые значения записываются и трассировка подсвечивается с уникальным цветом для каждой отслеживаемой кучи.

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

enter image description here https://github.com/stephenfewer/OllyHeapTrace