
angr v9.3.0
Una plataforma de análisis binario potente y fácil de usar!
angr
angr es un marco de análisis binario independiente de la plataforma. Es presentado por el Computer Security Lab de UC Santa Barbara, SEFCOM en Arizona State University, su equipo CTF asociado, Shellphish, la comunidad de código abierto, y @rhelmot.
Enlaces del proyecto
Página principal: https://angr.io
Repositorio del proyecto: https://github.com/angr/angr
Documentación: https://docs.angr.io
Documentación de la API: https://docs.angr.io/en/latest/api.html
¿Qué es angr?
angr es un conjunto de bibliotecas de Python 3 que te permiten cargar un binario y hacer muchas cosas interesantes con él:
- Desensamblado y elevación de representación intermedia
- Instrumentación de programas
- Ejecución simbólica
- Análisis de flujo de control
- Análisis de dependencia de datos
- Análisis de conjunto de valores (VSA)
- Descompilación
La operación más común de angr es cargar un binario: p = angr.Project('/bin/bash') Si haces esto en un REPL mejorado como IPython, puedes usar autocompletado con tabulación para navegar por los métodos accesibles de nivel superior y sus cadenas de documentación.
La versión corta de "cómo instalar angr" es mkvirtualenv --python=$(which python3) angr && python -m pip install angr.
Ejemplo
angr hace muchas cosas de análisis binario. Para empezar, aquí hay un ejemplo simple de uso de 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()
Inicio rápido
- Instrucciones de instalación
- Documentación en HTML y fuentes en el repositorio de Github de angr
- Sumérgete: métodos accesibles de nivel superior
- Ejemplos de uso de angr para resolver desafíos CTF.
- Referencia de la API
- Repositorio awesome-angr