Чтение

array of byte readData(int addr, *int size);

Чтение данных из памяти

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

    • Адрес данных, которые будут считываться

  • len:

    • Размер данных

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

Функция возвращает массив, содержащий прочитанные данные, или NULL в случае неудачи

Пример
readData(r.esp,4);

int readByte(int addr);

Чтение байта из памяти

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

    • Адрес данных, которые будут считываться.

  • len:

    • Размер данных.

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

Функция возвращает считанный байт, или NULL в случае неудачи

Пример
if(readByte(r.eip) == '\xCC')
        printf(r.eip,"debug trap...");

int readWord(int addr);

Чтение слова из памяти

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

    • Адрес данных, которые будут считываться.

  • len:

    • Размер данных.

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

Функция возвращает считанный байт, или NULL в случае неудачи

Пример
printf("%X",readWord(r.eip));

int readDword(int addr);

Чтение двойного слова из памяти

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

    • Адрес данных, которые будут считываться.

  • len:

    • Размер данных.

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

Функция возвращает считанный байт, или NULL в случае неудачи

Пример
printf("%X",readDword(r.eip));

string readString(int addr);

чтение строки из памяти(под строкой подразумевается, массив символов заканчивающийся нулём (C-string)

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

    • Адрес данных, которые будут считываться.

  • len:

    • Размер данных.

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

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

Пример
readString(r.esp);

string readUString(int addr);

Чтение UNICODE строки из памяти(под строкой подразумевается, массив символов заканчивающийся сдвоенным нулём

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

    • Адрес данных, которые будут считываться.

  • len:

    • Размер данных.

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

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

Пример
readString(r.esp);