ANGR est un cadre d'analyse binaire autochtaire. Il vous est présenté par le Laboratoire de sécurité informatique à UC Santa Barbara, SEFCOM à l'Arizona State University, leur équipe CTF associée, Shellphish, la communauté open source et @RhelMot .
Page d'accueil: https://angr.io
Référentiel de projet: https://github.com/angr/angr
Documentation: https://docs.angr.io
Documentation de l'API: https://api.angr.io/en/latest/
ANGR est une suite de bibliothèques Python 3 qui vous permettent de charger un binaire et de faire beaucoup de choses cool:
L'opération ANGR la plus courante consiste à charger un binaire: p = angr.Project('/bin/bash') Si vous le faites dans un REPLIGMENT IPYLY amélioré, vous pouvez utiliser Tab-Auto-Complete pour parcourir les méthodes accessibles à un 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 d'analyses binaires. Pour commencer, voici un exemple simple d'utilisation de l'exécution symbolique pour obtenir un drapeau 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 ()