3. Februar 2020, 21:11

Radare2

Hier meine Notizen bzgl. Radare2 aus dem Binary Analysis Course von Max Kersten.

Installation von Radare2:

$ git clone https://github.com/radare/radare2
$ ./radare2/sys/install.sh

Installation des r2dec Plugins, welches Pseudo C-Code anzeigt:

$ r2pm init
$ r2pm update
$ r2pm install r2dec

Ein Binary mit Radare2 öffnen:

$ r2 ./example.bin

Die aktuelle Adresse wird zwischen den []-Klammern angezeigt. Standardmäßig beginnt Radare2 nach dem Öffnen eines Binaries beim Einstiegspunkt (Funktion entry0).

Das Binary analysieren:

[0x0804845b]> aaaa

# Man kann auch beim Starten schon analysieren, "A" entspricht "aaa":
$ r2 -A ./example.bin

# "AA" entspricht "aaaa"
$ r2 -AA ./example.bin

Funktionen auflisten (All Functions List):

[0x0804845b]> afl

Zu der Adresse einer Funktion wechseln (Seek):

[0x0804845b]> s main

Die aktuelle Funktion disassemblieren:

[0x0804845b]> pdf

Pseudo C-Code der aktuellen Funktion mittels r2dec-Plugin anzeigen:

[0x0804845b]> pdd

Pseudo C-Code nebst Disassembly anzeigen (Disassembly weicht allerdings von pdf ab, es werden z.B. Adressen anstelle von Funktionsnamen angezeigt):

[0x0804845b]> pdda

Eine Beschreibung der Instruktion auf der rechten Seite (neben dem Disassembly) einblenden:

[0x0804845b]> e asm.describe = true

Pseudo-Assembly verwenden (aus mov x, y wird zum Beispiel x = y):

[0x0804845b]> e asm.pseudo = true

In grafische Darstellung wechseln (zeigt die verschiedenen Abzweigungen):

[0x0804845b]> VV

Binary in Schreibmodus öffnen:

$ r2 -w ./PatchMe.bin

Zu einer Adresse gehen und die Instruktion überschreiben (Write Assembly):

[0x08048424]> s 0x0804843a
[0x0804843a]> wa je 0x8048462
Written 2 byte(s) (je 0x8048462) = wx 7426

© Pavel Pi 2020

Powered by Hugo & Kiss'Em.