Функции для (Дис)Ассемблирования

variant dasmCmd(int type,int addr);

загрузка приложения в отладчик

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

    • Адрес инструкции

  • type:

    • Тип дизассемблирования:

      D_SIZE

      Получение размера инструкции

      D_OPCODE

      Получение опкода инструкции

      D_TEXT

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

      D_ADDR

      Получение адреса назначения прыжка

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

      Тип возвращаемого значения изменяется в зависимости от значения параметра type

      D_SIZE

      Функция возвращает размер инструкции(int) или 0 в случае ошибки

      D_OPCODE

      Функция возвращает массив байт (array of int) или 0 в случае ошибки

      D_TEXT

      Функция возвращает текстовое представление данной инструкции(string) или null в случае ошибки

      D_ADDR

      Функция возвращает адрес назначения прыжка (int) или 0 в случае ошибки

      Пример
      printf(r.eip,"command: %s", dasmCmd(D_TEXT,r.eip));
      printf(r.eip,"commandLen: %d", dasmCmd(D_SIZE,r.eip));

int asmCmd(int addr,string instr); Ассемблирование инструкции по адресу

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

    • Адрес, по которому будет записана ассемблированная инструкция

  • instr:

    • Текст инструкции

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

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

Пример
asmCmd(r.eip,"nop");

array of int getReferences(int addr);

Получение ссылок на инструкцию, адрес которой указан в параметре addr

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

    • адрес инструкции

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

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

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