O ANGR é uma estrutura de análise binária agnóstica da plataforma. Ele é trazido a você pelo Laboratório de Segurança de Computadores da UC Santa Barbara, Sefcom, da Arizona State University, sua equipe de CTF associada, Shellphish, The Open Source Community e @Rhelmot .
Página inicial: https://angr.io
Repositório do Projeto: https://github.com/angr/angr
Documentação: https://docs.angr.io
Documentação da API: https://api.angr.io/en/latest/
O ANGR é um conjunto de bibliotecas Python 3 que permitem carregar um binário e fazer muitas coisas legais:
A operação de ANG mais comum é carregar um binário: p = angr.Project('/bin/bash') Se você fizer isso em um replador aprimorado como o ipython, poderá usar o Tab-Autocomplete para navegar pelos métodos de nível superior e acessível e suas documentos.
A versão curta de "Como instalar ANGR" é mkvirtualenv --python=$(which python3) angr && python -m pip install angr .
Angr faz muitas coisas de análise binária. Para começar, aqui está um exemplo simples de usar a execução simbólica para obter uma bandeira em um desafio da 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 ()