Software für das Cracken von Software. Auswahl von Tools für das Reverse Engineering

Jeder Reverse Engineer, Malware-Analyst und einfacher Forscher stellt mit der Zeit ein bewährtes Set von Hilfstools zusammen, die er täglich für das Analysieren, Entpacken und Cracken anderer Software verwendet. In diesem Artikel besprechen wir meine. Sie werden für diejenigen nützlich sein, die über kein eigenes Set verfügen und erst mit dem Studium dieses Themas beginnen. Aber auch ein erfahrener Reverse Engineer sollte sich dafür interessieren, was andere Cracker verwenden.

WARNING

Alle Angaben dieses Artikels werden ausschließlich zu Informationszwecken zur Verfügung gestellt. Weder die Redaktion noch der Autor sind für eventuelle Schäden verantwortlich, die durch Inhalte dieses Artikels verursacht werden können.

Debugger

Das Debuggen einer Anwendung ist ein integraler Bestandteil des Untersuchungssprozesses, ein Werkzeug, das für einen Reverse Engineer immer verfügbar sein muss. Heutzutage muss der Debugger beide Architekturen – x64 und x86 – unterstützen, das ist die erste Voraussetzung.

Wir müssen außerdem in der Lage sein, Codes im Kernelmodus debuggen zu können. Ein Bedarf ist öfter mal vorhanden, besonders wenn Sie Zeroday-Schwachstellen im Kernel von Betriebssystemen suchen oder Malware in Treibern rückentwickeln möchten. Es gibt zwei Hauptkandidaten: x64dbg und WinDbg. Der erste Debugger arbeitet im User-Modus, der zweite kann im Kernelmodus Codes debuggen.

x64dbg

x64dbg.com

Dieser moderne Debugger mit einer sehr ansprechenden Benutzeroberfläche ist ein würdiger Nachfolger von OllyDbg. Er unterstützt beide Architekturen – x64 und x86 – und hat eine Menge nützlicher Plugins.

x64dbg
Built-in decompiler

Ja, natürlich ist er nicht ohne Fehler – er enthält immer noch einige störende und unangenehme Bugs. Er wird jedoch aktiv gepflegt und weiterentwickelt. Da der Debugger im Benutzermodus arbeitet, bleibt er natürlich für viele Anti-Debugging-Techniken anfällig. Dieser Nachteil wird jedoch teilweise durch verschiedene Plugins zum Ausblenden des Debuggers kompensiert.

Der X64dbg verfügt über einen integrierten Decompiler, der die Anzeige des Codes als Diagramm unterstützt. Sie können Haltepunkte zum Lesen, Schreiben, Ausführen und Zugreifen festlegen. Außerdem gibt es ein integriertes Hilfstool zur Importrekonstruktion (x64 und x86). Was soll man sagen – dieser Debugger ermöglichte einigen Hackern, das bekannte Denuvo DRM-System zu umgehen!

Warum nicht OllyDbg

Der OllyDbg-Debugger kam nicht in die engere Auswahl, da er bereits ziemlich überholt ist. Er unterstützt weder moderne Betriebssysteme noch die x64-Architektur. Auf der offiziellen Website der Anwendung gab es eine Ankündigung einer 64-Bit-Version und es wurde sogar über Fortschritte bei deren Entwicklung berichtet, aber die Website selbst wurde zuletzt im Jahr 2014 aktualisiert. Natürlich repräsentiert OllyDbg eine ganze Epoche, aber diese scheint nun vorbei zu sein. Auch die Anzahl der Kernel-Mode-Debugger ist zurückgegangen. Die Entwickler gaben den Syser-Kernel-Debugger auf, welcher zu seiner Zeit der Nachfolger von SoftICE war.

WinDbg

Offizielle Webseite

Wenn Sie den Kernel oder den Treiber debuggen müssen, dann gibt es nicht Besseres als WinDbg. Dieser Debugger wird von Microsoft selbst unterstützt und ist ein Teil von Windows Driver Kit (WDK). Im Moment ist dies das neueste und leistungsfähigste Tool zum Debuggen von Kernel-Codes. Hier gibt es keine so ansprechende Benutzeroberfläche wie bei x64dbg, aber wir haben auch keine große Wahl, denn andere Debugger funktionieren nicht im Kernel-Modus.

WinDbg unterstützt Remote-Debugging und kann Debugsymbole direkt von Microsoft-Servern herunterladen. Um es schneller für das Debuggen des Betriebssystemkernels virtueller Maschinen zu konfigurieren, gibt es ein VirtualKD Add-on. Das Starten des Reverse Engineer-Weges mit WinDbg ist natürlich streng kontraindiziert. Wenn Sie jedoch Erfahrungen gesammelt haben und verschiedene interessante Dinge ausprobieren, wird dies zu einer Notwendigkeit.

In WinDbg können Sie leicht sehen, wie diese oder andere Systemstrukturen aussehen, und NTAPI-Funktionen leicht disassemblieren. Natürlich können Sie auch „normale” Anwendungen debuggen, aber ich persönlich ziehe es vor, solch ein mächtiges Werkzeug nur dann auszupacken, wenn es absolut notwendig ist!

Please subscribe to read full article

1 year

for only $300

With subscription you are free to read all of the materials of Hackmag.com.
Read more about the project


Please subscribe to view comments

Only subscribers can participate in the discussions. You may login in to your account or sign up to Hackmag and pay a subscription to access the discussions.