<i>*aushol'*...</i><p>
Da ich schon desöfteren mit selbigen Problemen zu kämpfen hatte hier mal ein paar Hinweise:<p>
"<i>registry</i>"<br>
- Funktioniert nur ab Windows 2000 oder höher (daß es im praktischen Einsatz auch unter NT4 funktioniert ist nicht dokumentiert -- also geht es nicht =)<br>
- Der Rechner muß neu gestartet werden (ist manchmal ein Problem, insbesondere auf production systems -- auch für ein Update der DLL)<p>
"<i>hooks</i>"<br>
- Probleme sind oben lange diskutiert worden<p>
"<i>remote threads / WriteProcessMemory</i>"<br>
- Feine Sache nur leider fehlt es auf Win95 und WinNT 4.0 an der entsprechenden API (kenne zwar eine Möglichkeit für NT4 aber 95 ist nicht mein Acker, sorry)<p>
Schlußendlich ist es (IMHO) am besten eine sehr eigenständige DLL zu schreiben, die in dem/den Zielthread(s) arbeitet und falls notwenig mittels Interprozeßkommunikation (IPC) mit einer Kontroll/Steuer-Anwendung eine Verbindung aufzubauen.<br>
Um möglichst unabhängig von der Windows-Version zu sein, empfiehlt sich die Injektion der DLL per Hook, der in der DLL nur implementiert wird, um in den Zielthread zu gelangen, aber die Nachrichten, etc des Thread nicht beeinflußt (also im Bezug auf den Hook nur weiterleitet).<p>
Gruß Nico
PS: Zu dem Buch "Windows-Programmierung für Experten", es bezieht sich auf Windows 98 und Windows 2000, die dort vorgestellten Methoden sind nicht auf allen Windows lauffähig, und dies ist durchaus verständlich, es ist keine Anleitung zum OS-Hacken, sondern stellt vordergründig (und das sehr anschaulich) die Arbeitweise von Windows (Win32-Subsystem) vor... Man _kann_ die Quelltexte (die übrigens unter (C)Copyright stehen, da auf CD) nach Delphi portieren, aber wie gesagt, über den Sinn läßt sich streiten
Da ich schon desöfteren mit selbigen Problemen zu kämpfen hatte hier mal ein paar Hinweise:<p>
"<i>registry</i>"<br>
- Funktioniert nur ab Windows 2000 oder höher (daß es im praktischen Einsatz auch unter NT4 funktioniert ist nicht dokumentiert -- also geht es nicht =)<br>
- Der Rechner muß neu gestartet werden (ist manchmal ein Problem, insbesondere auf production systems -- auch für ein Update der DLL)<p>
"<i>hooks</i>"<br>
- Probleme sind oben lange diskutiert worden<p>
"<i>remote threads / WriteProcessMemory</i>"<br>
- Feine Sache nur leider fehlt es auf Win95 und WinNT 4.0 an der entsprechenden API (kenne zwar eine Möglichkeit für NT4 aber 95 ist nicht mein Acker, sorry)<p>
Schlußendlich ist es (IMHO) am besten eine sehr eigenständige DLL zu schreiben, die in dem/den Zielthread(s) arbeitet und falls notwenig mittels Interprozeßkommunikation (IPC) mit einer Kontroll/Steuer-Anwendung eine Verbindung aufzubauen.<br>
Um möglichst unabhängig von der Windows-Version zu sein, empfiehlt sich die Injektion der DLL per Hook, der in der DLL nur implementiert wird, um in den Zielthread zu gelangen, aber die Nachrichten, etc des Thread nicht beeinflußt (also im Bezug auf den Hook nur weiterleitet).<p>
Gruß Nico
PS: Zu dem Buch "Windows-Programmierung für Experten", es bezieht sich auf Windows 98 und Windows 2000, die dort vorgestellten Methoden sind nicht auf allen Windows lauffähig, und dies ist durchaus verständlich, es ist keine Anleitung zum OS-Hacken, sondern stellt vordergründig (und das sehr anschaulich) die Arbeitweise von Windows (Win32-Subsystem) vor... Man _kann_ die Quelltexte (die übrigens unter (C)Copyright stehen, da auf CD) nach Delphi portieren, aber wie gesagt, über den Sinn läßt sich streiten
Comment