
Une plateforme d'analyse binaire puissante et conviviale !
angr est un framework d'analyse binaire indépendant de la plateforme. Il vous est apporté par le Computer Security Lab de l'UC Santa Barbara, SEFCOM de l'Arizona State University, leur équipe CTF associée, Shellphish, la communauté open source, et @rhelmot.
Page d'accueil : https://angr.io
Dépôt du projet : https://github.com/angr/angr
Documentation : https://docs.angr.io
Documentation de l'API : https://docs.angr.io/en/latest/api.html
angr est une suite de bibliothèques Python 3 qui vous permet de charger un binaire et de faire plein de choses sympas avec :
L'opération la plus courante avec angr est le chargement d'un binaire : p = angr.Project('/bin/bash') Si vous faites cela dans un REPL amélioré comme IPython, vous pouvez utiliser l'auto-complétion par tabulation pour parcourir les méthodes accessibles au niveau supérieur et leurs docstrings.
La version courte de "comment installer angr" est mkvirtualenv --python=$(which python3) angr && python -m pip install angr.
angr fait beaucoup de choses en analyse binaire. Pour commencer, voici un exemple simple d'utilisation de l'exécution symbolique pour obtenir un flag dans un défi CTF.
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()