HookEngine

Ermöglicht das Einklinken an beliebigen Stellen einer Enginefunktion um eigenen Daedaluscode auszuführen.
Zerxes hat eine Liste aller Enginefunktionen bereitgestellt, inklusive Anzahl Bytes die für oldInstr eingetragen werden müssen. Diese Liste kann hier gefunden werden. Damit sollte es jedem möglich sein die HookEngine effektiv ohne IDA zu nutzen. Danke dafür!

HookEngine

void HookEngine(int address, int oldInstr, string function)Da eine Hook nur einmal pro Session ausgeführt werden darf, bietet sich folgendes Konstrukt (z.B. in der Init_Global()) an:
const int hookOnce = 0;
if (!hookOnce) {
HookEngine(address0, oldInstr0, function0);
HookEngine(address1, oldInstr1, function1);
hookOnce = 1;
};

HookEngineI

Alias zu HookEngine mit funcIDvoid HookEngineF(int address, int oldInstr, int funcID)

HookEngineF

Alias zu HookEngine mit func-Parametervoid HookEngineF(int address, int oldInstr, func function)

IsHooked

Überprüft ob an einer vorgegebenen Adresse schon eine Hook vorhanden ist
int IsHooked(int address)

IsHook

Überprüft, ob an einer Adresse schon eine Hook mit einer bestimmten Funktion vorhanden ist
int IsHook(int address, string function)

IsHookI

Alias zu IsHook mit einer SymbolID als Parameterint IsHookI(int address, int funcID)

IsHookF

Alias zu IsHook mit einer Funktion als Parameterint IsHookF(int address, func function)

RemoveHook

Entfernt eine Funktion aus einer Hook, so dass sie nicht mehr aufgerufen wird.
void RemoveHook (int address, int oldInstr, string function)§

RemoveHookI

Alias zu RemoveHook mit funcIDvoid RemoveHook (int address, int oldInstr, int funcID)

RemoveHookF

Alias zu RemoveHook mit func-Parametervoid RemoveHook (int address, int oldInstr, func function)

ReplaceEngineFunc

Ersetzt eine Enginefunktion mit einer Daedalusfunktion.
void ReplaceEngineFunc(int address, int thiscall_numparams, string replaceFunc)

ReplaceEngineFuncI

Alias zu ReplaceEngineFunc mit funcIDvoid ReplaceEngineFunc(int address, int thiscall_numparams, int funcID)

ReplaceEngineFuncF

Alias zu ReplaceEngineFunc mit func-Parametervoid ReplaceEngineFunc(int address, int thiscall_numparams, func function)

DisableEngineFunc

Sorgt dafür, dass eine Enginefunktion einfach übersprungen wird. Ist sehr delikat und wird nicht immer so einfach funktionieren.
void DisableEngineFunc(int address, int thiscall_numparams)