2019 / Softwareentwicklung

Ghidra ist veröffentlicht – Was kann das Reverse Engineering Open Source Tool?

Veröffentlicht am

Ghidra ist ein Open Source Werkzeug mit dem Sicherheitsforscher Programme besser verstehen können. Das Tool wurde heute auf der RSA-Conference in San Francisco vorgestellt und veröffentlicht.

Ghidra ist ein Reverse Engineering Tool

Aber was bedeutet eigentlich Reverse Engineering? Bei der Entwicklung von Software wird in einer, für Menschen verständlichen Programmiersprache (z.B. Java oder Python) festgelegt, was das Programm machen soll. Dieser sogenannte Quellcode wird von einem Übersetzer, dem Compiler, in Maschinencode, das heißt für den Computer verständliche Befehle, umgewandelt.

Das Reverse Engineering ist der Versuch, diesen Schritt rückgängig zu machen um so sehen zu können, wie ein Programm arbeitet und abläuft. Hersteller versuchen sich davor zu schützen, doch was auf der einen Seite dient um Software zu knacken, dient auf der anderen Seite dazu die IT-Sicherheit, insbesondere Malware, besser zu verstehen um so langfristig die IT-Sicherheit zu erhöhen.

Wieso gibt es Tools wie Ghidra?

Reverse Engineering ist ein wichtiger Schritt für die Sicherheit. Mit Hilfe von Reverse Engineering werden beispielsweise Schwachstellen in Passwortsafes gefunden und können geschlossen werden. Ein anderer Anwendungsfall für das Werkzeug ist die Analyse von Schadsoftware.

Schadsoftware wird häufig analysiert um zu verstehen wie Sie funktioniert. Ist ein Computer nach einem Ransomware-Angriff verschlüsselt und kann doch irgendwann mit einem “Master-Key” oder Programm entschlüsselt werden, ist das meist dem Reverse Engineering zu verdanken. Der Blogpost von Digital Media Women beschreibt die Arbeit einer Malware Reverse Engineerin bei der GData Advanced Analytics aus Bochum.

Wieso ist Ghidra so spannend?

Wirklich auf Ghidra aufmerksam wurde die Welt im Zuge der Vault7 Veröffentlichungen im Jahre 2017 durch Wikileaks. Ghidra verfügt über eine graphische Oberfläche und wird seit Anfang der 2000er Jahre durch die NSA entwickelt. Das spannende ist, dass es wenig Bewegung im Reverse Engineering Markt gab bisher. Fast alle Tools sind mit enormen finanziellen Aufwendungen verbunden die eine hohe Einstiegshürde bedeutete. Durch das Tool wird es Interessierten, Studierenden und Lehrenden deutlich erleichtert, Reverse Engineering zu lernen.

Installation und erster Eindruck

Zur Installation benötigt ihr nichts, außer eine aktuelle Java Version. Ihr ladet eine zip Datei auf der Ghidra Webseite herunter und entpackt diese Datei an einem Ort eurer Wahl. Im Anschluss könnt ihr Ghidra einfach nutzen. Beim Start des Programms werdet ihr nach einem Projektnamen gefragt. Diesen vergebt ihr und dann könnt ihr beispielsweise .exe-Dateien importieren und im Anschluss analysieren. Der folgende Screenshot zeigt Ghidra bei der automatischen Analyse der npp.exe-Datei(notepad++).

Ghidra - Test

 

Reverse Engineering – wie wird Software geknackt?

Wie knackt man Software? Fernando Dominguez Delgado zeigt auf seinem Blog (Waybackmachine Link) eine Schritt-für-Schritt Anleitung, wie man Software einem Reverse Engineering unterzieht. Das Ziel ist es die Prozedur für das Registrieren des Lizenzschlüssels ausfindig zu machen und zu umgehen.

[su_note note_color=”#ff271c” text_color=”#000000″]disclaimer: Der Beitrag soll nicht der Anstiftung der Piraterie dienen, sondern zeigen wie Reverse Engineering funktioniert. Er wird aus Bildungsgründen veröffentlicht. Das Dekompilieren und Knacken von Software ist in vielen Fällen illegal![/su_note]

Grundkenntnisse in der Entwicklung von Software ist nötig

Fernando spielt das ganze an der OS X Software Sublime Text 3 durch. Die Software ist, wie üblich für OS X, in Objective-C geschrieben. Grundkenntnisse der Softwareentwicklung sollte man deshalb mitbringen. Aber auch Kenntnisse in Assembler und C helfen zu verstehen, welche Schritte sinnvoll sind und was beim Reverse Engineering passiert.

Eine Anleitung für das Knacken von Software

Die Anleitung von Fernando ist kein “Generalschlüssel” um Software in Zukunft nicht mehr bezahlen zu müssen. Das ist auch gar nicht der Zweck des Autors. Mit seinem Beitrag steht er auch gerade heftig in der Diskussion – dass ihm die Anstiftung zur Piraterie vorgeworfen wird, ist nicht überraschend. Softwareprodukte haben seinen Preis – die Entwicklung ist teuer!

An dem ganzen Tutorial lässt sich jedoch eine Menge lernen. Fernando erklärt ausführlich, wie er die Software Schritt-für-Schritt im Rückwärtsverfahren analysiert. Er zeigt auch, welche unterschiedlichen Zustände von Lizenzen in der Software stecken, und wo diese stehen.

  • 0x1: Die Lizenz ist gültig und die Nachricht “Thanks for purchasing” erscheint.
  • 0x2: Die Lizenz ist ungültig und die Nachricht “That license key doesn’t appear to be valid.nnPlease check that you have entered all lines from the license key, including the BEGIN LICENSE and END LICENSE lines.
  • 0x3: Die Lizenz nicht mehr gütlig
  • 0x4: Die Lizenz wurde wegen Piraterie für ungültig erklärt

“Wie knackt man Software für Dummys?”

Allzu leicht verständlich ist die Anleitung von Fernando leider nicht. Das reverse Engineering setzt jedoch schon weiterführende Kenntnisse im Bereich der Softwareentwicklung voraus. Und bekannterweise ist auch dieser Tätigkeitsbereich ausreichend komplex.

https://youtu.be/G0o2HaJwLQo

Foto des Autors

Chris Wojzechowski

Mein Name ist Chris Wojzechowski und ich habe vor wenigen Jahren meinen Master in Internet-Sicherheit in Gelsenkirchen studiert. Ich bin geschäftsführender Gesellschafter der AWARE7 GmbH und ausgebildeter IT-Risk Manager, IT-Grundschutz Praktiker (TÜV) und besitze die Prüfverfahrenskompetenz für § 8a BSIG. Unser Brot und Buttergeschäft ist die Durchführung von Penetrationstests. Wir setzen uns darüber hinaus für ein breites Verständnis für IT-Sicherheit in Europa ein und bieten aus diesem Grund den Großteil unserer Produkte kostenfrei an.