ANGR es un marco de análisis binario agnóstico de plataforma. Le ofrece el Laboratorio de Seguridad Informática en UC Santa Bárbara, SEFCOM en la Universidad Estatal de Arizona, su equipo de CTF asociado, Shellphish, la comunidad de código abierto y @rhelmot .
Página de inicio: https://angr.io
Repositorio de proyectos: https://github.com/angr/angr
Documentación: https://docs.angr.io
Documentación de API: https://api.angr.io/en/latest/
Angr es un conjunto de bibliotecas Python 3 que le permiten cargar un binario y hacer muchas cosas geniales:
La operación Angr más común es cargar un binario: p = angr.Project('/bin/bash') Si hace esto en una replica mejorada como ipython, puede usar Tab-Autocomplete para explorar los métodos de nivel superior accesible y sus documentos.
La versión corta de "Cómo instalar Angr" es mkvirtualenv --python=$(which python3) angr && python -m pip install angr .
Angr hace muchas cosas de análisis binario. Para comenzar, aquí hay un ejemplo simple de usar una ejecución simbólica para obtener una bandera en un desafío 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 ()