Трассировка
void stepInto();
void stepInto(bool passException);
Исполнение одной команды с заходом в подпрограммы(Выполнение F7 в Olly)
-
passException:
-
Пропуск исключения (SHIFT+F7)
-
stepInto();
void stepOver();
void stepOver(bool passException);
Исполнение одной команды с заходом в подпрограммы(Выполнение F7 в Olly)
-
passException:
-
Пропуск исключения (SHIFT+F8)
-
stepOver();
void run();
void run(bool passException);
Исполнение программы (Выполнение F9 в Olly)
-
passException:
-
Пропуск исключения (SHIFT+F9)
-
run();
void runTR();
Исполнение подпрограммы до первого RET`а (Выполнение Ctrl+F9 в Olly)
run();
void pause();
Остановка приложения (Выполнение F12 в Olly)
run();
int executeCode(int addr, int param);
Исполнение кода по адресу, в новом потоке
-
addr:
-
Адрес, c которого начнется исполнение кода
-
-
param:
-
Параметр передаваемый коду (к нему можно получить доступ так: mov eax,[esp+4])
-
Функция возвращает значение регистра eax на момент окончания исполнения кода.
local test = malloc(1024); local t2 = test; printf(test,"memory addr..."); test += asmCmd(test,"push 0"); test += asmCmd(test,"call user32.MessageBeep"); test += asmCmd(test,"retn 4"); local retVal = executeCode(t2,0); printf("code executing result: 0x%0X",retVal);