Отлаживаемое приложение

int getProcAddr(string name, int moduleBase);

int getProcAddr(string name, string moduleName);

Получение адреса экспортируемой функции по её имени

Параметры
  • name:

    • Имя функции

  • moduleName:

    • Имя модуля, экспортирующего данную функцию.

  • moduleBase:

    • Базовый адрес модуля

Возвращаемое значение

Функция возвращает адрес функции, или 0 в случае неудачи.

Пример
getProcAddr("GetModuleHandleA","kernel32.dll");

string getProcName(int addr);

Получение имени экспортируемой функции по её адресу

Параметры
  • addr:

    • Адрес функции.

Возвращаемое значение

Функция возвращает имя функции, или null в случае неудачи

Пример
getProcName(r.eip);

int getModuleBase(string name);

int getModuleBase(int addr);

Получение базового адреса модуля по его имени

Параметры
  • name:

    • Имя модуля.

  • addr:

    • Адрес находящийся внутри модуля, базу которого необходимо найти (если данный параметр равен нулю, функция возвращет базовый адрес основного модуля).

Возвращаемое значение

Функция возвращает адрес модуля, или 0 в случае неудачи.

Пример
getModuleBase(0);

string getModuleName(int moduleBase);

Получение полного имени модуля

Параметры
  • moduleBase:

    • Базовый адрес модуля.

Возвращаемое значение

функция возвращает полный путь к модулю(string), или null если модуль не найден.

Пример
local modName = getModuleName(getModuleBase(0));
print(modName);

bool analyseModule(int address);

Авто анализ модуля с помощью Olly (Ctrl+A)

Параметры
  • address:

    • Базовый адрес модуля.

Возвращаемое значение

Функция возвращает true, если анализ завершен успешно.

Пример
analyseModule(getModuleBase(0));

int getMemBlockBase(int addr);

Получение базового адреса блока памяти

Параметры
  • addr:

    • Адрес находящийся внутри блока памяти, базовый адрес которого вы хотите найти.

Возвращаемое значение

Функция возвращает адрес блока памяти, или 0 если по данному адресу память свободна

Пример
printf(getMemBlockBase(r.eip),"current block base");

int getMemBlockSize(int blockBase);

Получение размера блока памяти

Параметры
  • blockBase:

    • Базовый адрес блока памяти, размер которого вы хотите найти.

Возвращаемое значение

Функция возвращает размер блока памяти, или 0 если по данному адресу память свободна

Пример
printf(getMemBlockSize(getMemBlockBase(r.eip)),"current block size");