2010-06-25 7 views
5

Kann mir jemand erklären, wie sich ein Programm in andere Windows-Programme einklinkt und das Verhalten anderer Programme ändert?Wie hakt ich in andere Programme in Windows ein?

Wie ist es überhaupt möglich? Schützen sich Windows-Programme nicht davor, dass andere Programme in ihren Speicher gelangen usw.? (Ich kenne die Interna nicht, wie es funktioniert, also habe ich nur gesagt "in ihre Erinnerung" - ich wette, es ist komplexer als das.)

Auch ermöglicht es moderne Windows wie Windows 7 noch?

Danke, Boda cyclo

Antwort

5

Es gibt verschiedene Möglichkeiten, das Verhalten anderer Programme anzuhängen und zu ändern.

Zum Beispiel können Sie direkt in den Speicher eines anderen Programms schreiben (WriteProcessMemory) oder Sie können einen Thread in den Speicher eines anderen Programms (CreateRemoteThread) injizieren. Dies setzt voraus, dass Sie einige Rechte haben, dieses andere Programm zu kontrollieren.

Sie können einen Fensterhaken auch über SetWindowsHookEx einfügen. Dies setzt voraus, dass Sie in der Benutzersitzung mit der gleichen oder höheren Integritätsstufe des Programms, in das Sie injizieren, ausgeführt werden.

Dies ist immer noch aus verschiedenen Gründen zulässig. Ohne eine Möglichkeit, das Verhalten anderer Programme zu ändern, wäre es nicht möglich, einen Debugger zu implementieren. Windows-Hooks werden von Testprogrammen, Eingabehilfeprogrammen, Programmen, die das Aussehen von Windows ändern, usw. verwendet.

+0

Kannst du das unter Linux machen? Ich denke, in Linux kann man den Speicher anderer Programme nicht manipulieren? – bodacydo

+0

Ich bin kein Linux-Entwickler. Wie würde ein Benutzermodus-Linux-Debugger einen Haltepunkt in einen Prozess einfügen oder den Stapel eines Threads lesen? – Michael

+0

Normalerweise führen Sie das Programm über 'gdb' aus. Dann, da gdb den Kindprozess abgibt, hat er irgendwie Zugang zu diesem Programm, aber ich bin mir nicht sicher, ich bin neu in all dem. – bodacydo

0

eine Anwendung Stellen Sie sich vor, die Daten speichert die Datei x.txt Sie den x.txt Inhalt greifen und versuchen, einen Unterschied in der gespeicherten x.txt gegen den Strom x zu finden. txt, sobald es sich ändert, können Sie ein Ereignis Feuer haben wissen, dass Programm X seine x.txt-Datei geändert.

Sie können dies auf einer niedrigeren Ebene tun, aber das Konzept bleibt gleich (etwas für die Änderung überwachen).

+0

Ist das nicht nur Speichermanipulation? Das gleiche Konzept, um Spiel-Trainer zu machen? Ich dachte, das OP rede über physische Hooks, um Code auszuführen (könnte das gleiche sein ...), wie Steam Hooks deine 3D-Spiele, um ihr Overlay einzubetten. – Aren

Verwandte Themen