ZwCreateFile hooken



  • guten abend.

    ich versuche LoadLibrary auf eine virtuelle datei umzuleiten. dazu fange ich
    ZwCreateFile ab, das heißt, ich versuch es. die funktion wird per inline-hooking
    übernommen. allerdings landet das programm nie in der hook-funktion 😞

    da ich keine schreibrechte auf ntdll hab und auch keine bekomme (VirtualProtect),
    muss ich mittels PAGE_WRITECOPY mir die page kopieren. wenn ich mit dem selben
    hooking-system z.b. Sleep hooke, klappt das ohne probleme, ich lande in meiner
    hooking-funktion, kann die originalfunktion noch aufrufen, rückgabe ändern, wie
    ich lustig bin.

    bei der callchain von LoadLibrary gehts aber nicht. komischerweise kann ich

    LoadLibraryExA (wird von LoadLibraryA aufgerufen)
    LoadLibraryExW (wird von LoadLibraryExA aufgerufen)

    ohne probleme hooken. bei besagter ntdll funktion geht das NICHT.

    kann das daran liegen, dass die funktion intern den kontext wechselt, so dass
    mein "kopierter" speicherbereich nicht verwendet wird? (selbe virtuelle addresse)

    code zu zeigen macht nicht viel sinn, da ich ganz "normales" inline-hooking
    betreibe (erste paar bytes zum JMP patchen). wenn ihr welchen wollt, sagt
    bescheid.

    hintergund:

    LoadLibrary läd nur vom dateisystem. wenn ich es schaffe, die dateioperationen
    zu hooken, kann man auch aus z.b. .zip laden. allerdings darf die lösung (wenn es
    eine gibt) nicht admin-only sein, da das auch normalusern zustehen sollte.

    MfG
    das häckchen

    gn8 euch noch 🙂


Anmelden zum Antworten