![]() |
Re: Hook auslösen!
Zitat:
Zitat:
Eigentlich willst du doch bloß einen Prozeß im SYSTEM-Kontext ausführen, oder? Warum dann nicht einfach eine normale Methode verwenden? Es gibt immer die Rechte-Hürde, die du ohne Recht oder Exploit nicht überspringen kannst. |
Re: Hook auslösen!
Hooks können nur in Prozesse injeziert werden die über einen Messagequeue verfügen. Nachdem ein globaler Hook installiert wurde, wird er nicht sofort in alle Prozesse installiert. Man kann mit PostMessage(hWnd_Broadcast, wm_Null, 0, 0); nun erzwingen das jeder Messagequeue aktiv werden muß. D.h. man sollte obige PostMessage() nach dem Aufruf SetWindowsHookEx() durchführen damit alle betroffenen Prozesse die Hook-DLL laden und somit aktiv werden. Wird dies nicht gemacht kann es durchaus vorkommen das ein Prozess lange Zeit keienrlei Messages bearbeitet, und somit unsichtbar für den globalen Hook ist.
Allerdings, Hooken auf diesem Wege funktioniert nur mit Prozessen die einen Messagequeue besitzen, und Services.exe hat keinen Messagequeue. Dies stellt nämlich ein Sicherheitsrisiko dar. Gruß Hagen |
Re: Hook auslösen!
@Hagen: Korrekt, bis auf die Tatsache, daß zumindest Kindprozesse von services.exe durchaus Messagequeues haben. Ich sage nur Norton oder McAfee AV-Produkte. Das wurde ja bei der Shatter Attack so vom Entdecker bemängelt.
|
Re: Hook auslösen!
Kindprozesse eine Prozesses ohne Messagequeue sind nicht abhänig von Services.exe. D.h. es liegt in der Entscheidung des Entwicklers eines Dienstes ob er diesen mit oder ohne GUI codet. Man sollte natürlich Dienste immer ohne GUI entwickeln. Schon seltsam das AV Programme die Sicherheit ins System bringen sollen, solche anerkannt unsicheren Techniken benutzen.
Gruß Hagen |
Re: Hook auslösen!
Ja ja, das mit den Queues ist mir schon klar. Aber ich glaube mal, daß es hier nicht um die services.exe sondern um die Erlangung des SYSTEM-Kontext geht.
|
Re: Hook auslösen!
Liste der Anhänge anzeigen (Anzahl: 1)
Nein! Ich will wie gesagt nur Code in ein Programm ohne Messagequeue injecieren. Muss auch nicht services.exe sein, halt nur ein Programm ohne Messagequeue. Mir geht es nicht um die Systemrechte.
Zitat:
(Ich weiß zwar die ganzen Parameter nicht, aber soweit ich weiß darf man nur nichts am Stack verändern [oder man kopiert ihn bevor man damit arbeitet+ hinterher wieder zurückkopieren], damit die übergebenen Werte auch dann richtig an die original DLL weitergegeben werden) P.S.:Hat jemand villeicht ein bisschen Beispiel Code für API-Hooking??? |
Re: Hook auslösen!
Soso ... und das schreibst du dann für jede einzelne Windows-Version. Wußte garnicht, daß Delphi sowas wie Naked beherrscht. Und selbst da müßtest du noch ne eigene Jumptable bauen. Abgesehen von der WFP die dir dann ins Vorhaben spuckt.
Such mal nach ![]() |
Re: Hook auslösen!
Wenn man die DLL in Assembler schreibt, söllte man das Problem normal doch nicht haben oder???
Was ist WFP??? Zu DETOURS: Hab nur C++-Quellcodes gefunden, kann aber leider kein C/C++ |
Re: Hook auslösen!
Zitat:
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:14 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