Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Einige Fragen zu Api-Hooks & Ändern der Anwendungsrechte (https://www.delphipraxis.net/92907-einige-fragen-zu-api-hooks-aendern-der-anwendungsrechte.html)

markusj 28. Mai 2007 18:45


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:
http://www.michael-puff.de/dirindex..../Importe/toms/
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

PeterPanino 28. Mai 2007 18:54

Re: Einige Fragen zu Api-Hooks & Ändern der Anwendungsre
 
Schau mal hier:

http://www.tweak-uac.com

For programmers: Riding the Vista Elevator, up and down.

markusj 28. Mai 2007 19:02

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

markusj 29. Mai 2007 18:02

Re: Einige Fragen zu Api-Hooks & Ändern der Anwendungsre
 
*push*
Mag sich denn niemand erbarmen?

mfG
Markus

markusj 31. Mai 2007 10:29

Re: Einige Fragen zu Api-Hooks & Ändern der Anwendungsre
 
*push*
Mag denn niemand etwas schreiben?

mfG
Markus

DGL-luke 31. Mai 2007 10:48

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?

markusj 31. Mai 2007 12:44

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

DGL-luke 31. Mai 2007 13:06

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 19:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz