![]() |
Execute Hook unter Vista
Ich habe mir folgende
![]() Weiß jemand, welche Funktion der Explorer zum starten von Anwendungen aufruft? Weil für mein Progamm muss nur diese gehookt werden. Und bevor ich jetzt alle durchprobiere und es im Endeffekt doch nicht funktioniert, dachte ich mir, frage ich doch lieber mal, ob sich jemand damit auskennt. |
Re: Execute Hook unter Vista
Die DLL hat ein paar Einschränkungen:
1) sie funktioniert nur mit 32bit prozessen (ist der explorer einer?) 2) sie funktioniert nur wenn CreateProcessW zum starten des Prozesses verwendet wird 3) sie funktioniert nicht wenn die APIs dynamisch geladen werden |
Re: Execute Hook unter Vista
Also ich habe Vista x64, das dürfte ja wohl die 1. Frage beantworten.
Was muss ich machen, damit es auch für 64-bit funktioniert? |
Re: Execute Hook unter Vista
Zitat:
Zitat:
|
Re: Execute Hook unter Vista
Also die Anwendungen, die ich ausführen möchte sind 32-bit Applikationen.
Aber beim Explorer kann ich doch gar nicht sagen, dass ich ihn in 32-bit ausführen möchte. |
Re: Execute Hook unter Vista
Hab Vista ganz neu:
Die Explorer.exe wird nich als *32 im Taskmanager angezeigt, von daher wird es eine 64Bit Version sein. Dort kann die DLL nich injeziert werden und somit funktioniert auch das hooken von CreateProcessW nicht. Folglich bekommst du das starten von anderen Programmen nicht mir. Ohne 64 Bit Compiler wirst du also keine DLL in den explorer Prozess injezieren können. Somi bekommst du das starten nicht mir. Falls du das starten nicht direkt mitbekommen musst, sondern nur dass ein neues Programm läuft, würde ich die gestarteten Prozess in einem Timer einfach immer neu auslesen und mit vorherigen ergebnisssen vergleichen. Eine andere Möglichkeit sehe ich hier leider im Moment nicht :/ |
Re: Execute Hook unter Vista
Also muss, damit das ganze funktioniert nur die DLL mit einem 64-bit Compiler erstellt werden oder das gesammte Programm?
Wenn es nur das erstere ist, dann könnte ich ja den Code für die DLL in C# übersetzten und damit compiliern, denn da gibt es ja einen 64-bit Compiler. Und die Komunikation zwischen der DLL und meiner anderen Anwendung könnte ich dann mit SendMessage realisieren. Oder habe ich da jetzt einen Denkfehler drin, ist nämlich irgendwie schon verdammt spät. |
Re: Execute Hook unter Vista
Die 64Bit dll wirst du dann auch nicht ohen weiteres in einen 64Bit prozess mit hilfe eines 32Bit prozesses bekommen.
Notfalls musst du dir noch einen 64Bit injecter schreiben. Ich hab das aber selber noch nicht getestet, von daher sinds nur Vermutungen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 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