Mac OSX Reversing – #0 Einleitung – unser Toolkit

Heute komme ich zu dem Thema Reverse Engineering unter OSX. Zum Anfang stelle ich ein paar Tools vor, mit denen man in das Debuggen und Reversen unter OSX einsteigt. Kommen wir auch schon zu dem ersten Tool, welches standardmäßig mit XCode mitgeliefert wird.

Der GNU Debugger – GDB

Alle Linuxuser dürften den GDB kennen. Wie der Name es oben sagt, ist es ein Debugger, jedoch ohne GUI. Alles läuft in der Konsole ab, wie wir es am Screenshot erkennen können. Es wird immer nur ein kleiner Ausschnitt vom Assembler-Code gezeigt und so können wir alles genau verfolgen, was das Programm gerade macht oder können das Programm während der Laufzeit manipulieren.
Installation: XCode installieren
Download: XCode Download

Gdbinit – die GDB Erweiterung

Gdbinit gibt dem Benutzer von GDB eine kleine bzw. eine große Hilfe, um besser mit dem GDB umgehen zu können. Gdbinit ist eine Art Skript und es enthält auch verschiedene Makros, welche eine bessere Konsolenausgabe von GDB erzeugen lässt und ihn auch leichter bedienen lassen. Um zu sehen was gdbinit macht, tippen wir im gdb „help user“ ein und sollten eine Liste mit Befehlen zurück bekommen, die uns gdbinit erstellt hat.
Installation: Um Gdbinit zu installieren müsst ihr die .gdbinit einfach in euren Benutzer-Ordner (Home-Folder?) kopieren.
Download:GDBinit Download

OTX – Programmoberfläche für otool

otool wird standardmäßig mit XCode mitgeliefert, welches eine fertig kompilierte Datei komplett in AssemblerCode umwandelt. OTX ist zum einen dafür da, otool einfach zu benutzen und zum anderen optimiert es auch die Ausgabe bzw. setzt die Parameter von otool so, dass otool eine sehr gute lesbare Ausgabe erzeugt. Somit haben wir nach dem benutzen von OTX ein Textdokument, wo der gesamte Assembler Code unseres Ziel-Programms steht. In diesem Textdokument wird man sich wohl die meiste Zeit aufhalten.
Installation: otool wird mit XCode installiert und OTX muss in XCode kompiliert werden
Download: OTX Download

0xED – Der HEX-Editor

Da wir über GDB zwar unser Programm in Echtzeit verändern können, diese Veränderungen aber nur temporär sind, müssen wir unsere Änderungen auch irgendwie in das fertige Programm übernehmen können. Hierbei hilft uns nur der Weg das Programm über einen HexEditor zu editieren. Wie dies funktioniert werde ich in einem nachfolgenden Tutorial beschreiben.
Installation: irgendwo entpacken und die 0xED starten
Download: oxED Download

So viel zu den Tools die wir für das Reverse Engineering brauchen. Noch einmal kurz zusammengefasst: XCode, Gdbinit, OTX und 0xED. An dieser Stelle möchte ich auch noch einmal bei @osxreverser für gdbinit bedanken und sein sehr gelungendes englisches Tutorial, womit ich in das Reversing von OSX eingestiegen bin.
Zum Tutorial von @osxreverser

One thought on “Mac OSX Reversing – #0 Einleitung – unser Toolkit”

  1. Für OS X habe ich Synalyze It! entwickelt, das nicht nur ein kostenloser Hex-Editor ist, sondern speziell Unterstützung für Reverse Engineering enthält.

    So ist es leicht möglich, Annahmen über ein unbekanntes Format zu treffen und diese Annahmen an ähnlichen Dateien zu überprüfen. Die sogenannte Grammatik, die dabei aufgebaut wird, färbt dann die Hex-Ansicht ein, so dass die Felder leicht zugeordnet werden können.

    Bei Interesse einfach mal ausprobieren: http://www.synalysis.net/ :-)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.