
angr v9.3.0
Uma plataforma de análise binária poderosa e fácil de usar!
angr
angr é um framework de análise binária independente de plataforma. Ele é trazido a você pelo Laboratório de Segurança Computacional da UC Santa Barbara, SEFCOM da Arizona State University, seu time CTF associado, Shellphish, a comunidade de código aberto, e @rhelmot.
Links do Projeto
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://docs.angr.io/en/latest/api.html
O que é angr?
angr é um conjunto de bibliotecas Python 3 que permitem carregar um binário e fazer muitas coisas interessantes com ele:
- Desmontagem e elevação de representação intermediária
- Instrumentação de programa
- Execução simbólica
- Análise de fluxo de controle
- Análise de dependência de dados
- Análise de conjunto de valores (VSA)
- Descompilação
A operação mais comum do angr é carregar um binário: p = angr.Project('/bin/bash') Se você fizer isso em um REPL aprimorado como IPython, pode usar o autocompletar por tab para navegar pelos métodos acessíveis no nível superior e suas docstrings.
A versão resumida de "como instalar angr" é mkvirtualenv --python=$(which python3) angr && python -m pip install angr.
Exemplo
angr faz muitas coisas de análise binária. Para começar, aqui está um exemplo simples de uso de execução simbólica para obter uma flag em um desafio 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()
Início Rápido
- Instruções de Instalação
- Documentação em HTML e fontes no repositório Github do angr
- Mergulhe de cabeça: métodos acessíveis no nível superior
- Exemplos de uso do angr para resolver desafios CTF.
- Referência da API
- repositório awesome-angr