
angr v9.3.0
Una potente e intuitiva piattaforma di analisi binaria!
angr
angr è un framework di analisi binaria indipendente dalla piattaforma. È realizzato da il Computer Security Lab dell'UC Santa Barbara, SEFCOM dell'Arizona State University, il loro team CTF associato, Shellphish, la comunità open source e @rhelmot.
Collegamenti del progetto
Homepage: https://angr.io
Repository del progetto: https://github.com/angr/angr
Documentazione: https://docs.angr.io
Documentazione API: https://docs.angr.io/en/latest/api.html
Cos'è angr?
angr è una suite di librerie Python 3 che ti consente di caricare un binario e fare molte cose interessanti con esso:
- Disassemblaggio e sollevamento della rappresentazione intermedia
- Strumentazione del programma
- Esecuzione simbolica
- Analisi del flusso di controllo
- Analisi delle dipendenze dai dati
- Analisi degli insiemi di valori (VSA)
- Decompilazione
L'operazione più comune con angr è caricare un binario: p = angr.Project('/bin/bash') Se lo fai in un REPL potenziato come IPython, puoi usare il completamento con tab per esplorare i metodi accessibili dal livello superiore e le loro docstring.
La versione breve di "come installare angr" è mkvirtualenv --python=$(which python3) angr && python -m pip install angr.
Esempio
angr fa molte cose di analisi binaria. Per iniziare, ecco un semplice esempio di utilizzo dell'esecuzione simbolica per ottenere una flag in una sfida 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()
Avvio rapido
- Istruzioni di installazione
- Documentazione come HTML e fonti nel repository GitHub di angr
- Immergiti subito: metodi accessibili dal livello superiore
- Esempi di utilizzo di angr per risolvere sfide CTF
- Riferimento API
- Repository awesome-angr