
angr v9.3.0
Eine leistungsstarke und benutzerfreundliche Binäranalyse-Plattform!
angr
angr ist ein plattformunabhängiges Binary-Analyse-Framework. Es wird Ihnen präsentiert vom Computer Security Lab der UC Santa Barbara, SEFCOM an der Arizona State University, ihrem zugehörigen CTF-Team, Shellphish, der Open-Source-Community und @rhelmot.
Projektlinks
Homepage: https://angr.io
Projekt-Repository: https://github.com/angr/angr
Dokumentation: https://docs.angr.io
API-Dokumentation: https://docs.angr.io/en/latest/api.html
Was ist angr?
angr ist eine Suite von Python-3-Bibliotheken, mit denen Sie eine Binärdatei laden und viele coole Dinge damit tun können:
- Disassemblierung und Hebung von Zwischendarstellungen
- Programminstrumentierung
- Symbolische Ausführung
- Kontrollflussanalyse
- Datenabhängigkeitsanalyse
- Wertemengenanalyse (VSA)
- Dekompilierung
Die häufigste angr-Operation ist das Laden einer Binärdatei: p = angr.Project('/bin/bash') Wenn Sie dies in einer erweiterten REPL wie IPython tun, können Sie die Tab-Autovervollständigung verwenden, um die Methoden der obersten Ebene und ihre Dokstrings zu durchsuchen.
Die Kurzversion von „So installieren Sie angr“ lautet mkvirtualenv --python=$(which python3) angr && python -m pip install angr.
Beispiel
angr macht eine Menge Binary-Analyse-Zeug. Um Ihnen den Einstieg zu erleichtern, finden Sie hier ein einfaches Beispiel für die Verwendung symbolischer Ausführung, um eine Flagge in einer CTF-Herausforderung zu erhalten.
import angr
project = angr.Project("angr-doc/examples/defcamp_r100/r100", auto_load_libs=False)
@project.hook(0x400844)
def print_flag(state):
print("FLAG SHOULD BE:", state.posix.dumps(0))
project.terminate_execution()
project.execute()
Schnellstart
- Installationsanweisungen
- Dokumentation als HTML und Quellen im angr Github-Repository
- Tauchen Sie ein: Methoden der obersten Ebene
- Beispiele mit angr zur Lösung von CTF-Herausforderungen
- API-Referenz
- awesome-angr-Repo