![]() |
Einige Fragen zu Api-Hooks & Ändern der Anwendungsrechte
Hi@all,
ich bin im Moment dabei, ein Programm zu schreiben, welches "unsichere" Programme wie IE, Firefox, Outlook&Co automatisch in einem Benutzerkonto mit minimalsten Zugriffsrechten einsperren soll. (Bei jedem Aufruf, egal ob via Hotkey, Dateiverknüpfung o.ä) Iinzwischen bin ich so weit, dass ich weiß, dass das Hooken der CreateProcess* Funktionen hier das angebrachte Mittel ist. Dadurch kann ich wohl den Start der gewünschten Programme abfangen. Folgendes habe ich bereits gefunden: ![]() CreateProcessWithLogonW So, nun einige Fragen: Wie kann ich einen Aufruf von Firefox, der als CreateProcessW hereinkommt, auf ein CreateProcessWithLogonW umbiegen? Sind die direkt kompatibel miteinander? Beim MSDN habe ich drei Parameter gefunden, die ich scheinbar selbst übergeben muss ... kann ich das problemlos machen?! So, zum HookCode aus Luckies Import-Folder: HookUnit.pas: Wofür ist TImportCode? Welchen Zweck haben PointerToFunctionAddress & FinalFunctionAddress Was machen PatchAdress & dessen Subfunction? Ich habe noch nie mit API-Hooks gearbeitet, würde aber trotzdem gerne lernen/verstehen, was da passiert. Erbarmt sich jemand und erklärt mir das ganze? Eine kleine Prognose bezüglich der Machbarkeit meines Projektes wäre auch noch ganz nett mfG Markus |
Re: Einige Fragen zu Api-Hooks & Ändern der Anwendungsre
|
Re: Einige Fragen zu Api-Hooks & Ändern der Anwendungsre
Ähm ja, kleine Anmerkung ... das ganze soll unter WinXP stattfinden und ist ein wenig an die Vista-System angelehnt ...
mfG Markus |
Re: Einige Fragen zu Api-Hooks & Ändern der Anwendungsre
*push*
Mag sich denn niemand erbarmen? mfG Markus |
Re: Einige Fragen zu Api-Hooks & Ändern der Anwendungsre
*push*
Mag denn niemand etwas schreiben? mfG Markus |
Re: Einige Fragen zu Api-Hooks & Ändern der Anwendungsre
Hallo, zum TImportCode: Bei einem API-Hook ersetzt du die Sprungadresse zur API-FUnktion durch deine eigene. Ein "jmp @ExecuteProcess" wird dann zu einem "jmp @DeinFunktionspointer". Dazu merkst du dir natürlich normalerweise das Original.
AdressOfPointerToFunction is dann wohl die Adresse eines Pointers in dem deine funktion steht. deren prototyp übrigens mit dem der gehookten (API-)funktion übereinstimmen sollte, denk ich mal, denn die callende anwendung wird genau dafür die register (=parameter) setzen. ...und bei JumpInstruction würd ich jetzt mal dem kommentar folge leisten :stupid: Hilft dir die demo nicht? |
Re: Einige Fragen zu Api-Hooks & Ändern der Anwendungsre
Doch, ich wollte nur Verstehen, was die beiden Prozeduren/Funktionen im Detail machen. (Lerneffekt)
Was ihr ungefährer Zweck ist, lässt sich ja anhand des Namens erahnen ... Dass das ganze funktioniert, habe ich schon gesehen, ich muss nur noch ausprobieren, ob ich das ganze Problemlos auf CreateProcessWithLogonW umbiegen kann ... mfG Markus |
Re: Einige Fragen zu Api-Hooks & Ändern der Anwendungsre
sollte, ja. du musst nur die zusätzlichen informationen selber haben, die das logon braucht.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz