
Eine leistungsstarke und benutzerfreundliche Binäranalyse-Plattform!
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.
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
angr ist eine Suite von Python-3-Bibliotheken, mit denen Sie eine Binärdatei laden und viele coole Dinge damit tun können:
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.
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()