
angr v9.3.0
Une plateforme d'analyse binaire puissante et conviviale !
angr
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.
Liens du projet
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
Qu'est-ce qu'angr ?
angr est une suite de bibliothèques Python 3 qui vous permet de charger un binaire et de faire plein de choses sympas avec :
- Désassemblage et levée en représentation intermédiaire
- Instrumentation de programme
- Exécution symbolique
- Analyse de flux de contrôle
- Analyse de dépendances de données
- Analyse d'ensembles de valeurs (VSA)
- Décompilation
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.
Exemple
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()
Démarrage rapide
- Instructions d'installation
- Documentation en HTML et sources dans le dépôt Github d'angr
- Plongez directement : méthodes accessibles au niveau supérieur
- Exemples d'utilisation d'angr pour résoudre des défis CTF.
- Référence de l'API
- dépôt awesome-angr