Frage

Ich muss Ausführung abfangen in sehr große Anwendung in vielen Orten.

Was Programme kann ich nutzen, dies zu tun? Welche Techniken gibt es für diese Probleme?

manuell Reverse Engineering und das Hinzufügen von Haken ist vielleicht nicht optimale Lösung für dieses Problem, weil Anwendung sehr groß ist und ein Teil der Anwendung kann in einiger Zeit aktualisiert werden, denke ich, mit einigen Werkzeugen oder guten Praktiken für dieses Problem i kann dies schneller tun , Wer weiß, wie zu tun?

jemand mir helfen?

War es hilfreich?

Lösung

da die Werkzeuge Teil abgedeckt wurde, ist hier etwas für die Techniken.

Je was es Sie Haken müssen und ob es wird Schutz invloved, gibt es ein paar Methoden:

  1. Relative Anruf / JMP Patchen in der virtualisierten binär: Dies ist die einfachste, aber auch eine Menge Arbeit, wenn Sie nicht automatisch alle Verweise auf eine Funktion finden kann, ist dies wahrscheinlich nicht funktionieren wird in dieser Sache wegen Ihre Kriterien aus.

  2. IAT / EAT Einhaken: diese Verwendung für die Einfuhr (IAT) und Exporte (EAT) ist groß, wenn Ihr einen bekannten importted / exportierte Satz von API-Funktionen Targeting. // www: ein gutes Beispiel dafür kann hier oder hier

  3. Hot-Patching: Windows XP SP2 eingeführt etwas namens "Hot-Patching" (für Echtzeit-Systemfunktion Updates verwendet wird), in dem alle seine (die WinAPI) Funktionen beginnen mit einem 'mov edi, edi', a erlaubt relativer Sprung in den freien Raum über jeder Hot-patchbare Funktion ( man kann es auch tun ). dies ist in der Regel für Programme verwendet, die Prüfsumme dort IAT ist oder andere lustige Formen des Schutzes, können weitere Informationen hier und hier

  4. -Code-Caving: Erfassung Ausführungsablauf durch Umleitungen in beliebigem Code Raum platzieren. finden Sie unter hier hier oder hier

  5. VFT / COM-Umleitung: im Grunde überschreiben Einträge in eine virtuelle Funktionstabelle Objekte, nützlich für die OOP / COM-basierte Anwendungen. finden Sie unter dieser

Es gibt eine Menge von 3rd-Party-Bibliotheken, bekanntesten wahrscheinlich MS Detours wäre , man kann auch sehen APIHijack oder ein Mini-Haken Motor .

Natuerlich kann nichts für den ersten Stocher ersetzen Sie mit einem Debugger tun müssen, wie OllyDbg , aber die Methode Ihre gonna verwenden zu wissen, drastisch kann kurz ihnen Menge Zeit verbrachte Zeit stochern

Andere Tipps

Einige Details, was genau Sie tun müssen (zum Beispiel wie Sie bestimmen, wo zu brechen) wäre schön. Je nach Situation, so etwas wie Pin funktionieren könnte.

Ich schlage vor, mit Deviare API Haken . Es ist die einfachste Art und Weise können Sie tun, was Sie brauchen. Es hat einige COM-Objekte, dass Sie eine Anwendung zum Einhängen von einem anderen Prozess verwendet werden können. In Ihrem Prozess erhalten Sie die volle Parameterinformationen und Sie können es in einer beliebigen Programmiersprache verwenden (Ich bin mit C # und es wirkt wie ein Zauber). Wenn Sie abfangen Registry API benötigen schlage ich Deviare zu debuggen mit, was Sie abfangen müssen, aber dann werden Sie Ihre eigenen Haken machen müssen, sonst werden Sie Performance-Probleme finden.

Sie können die API Hooking tun, wenn Sie in das Abfangen Methodenaufrufe interessiert sind.

oder einige Disassembler wie Softeis verwenden oder OllyDbg oder win32dasm .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top