ANGR-это платформа-агрессивная бинарная структура. Он представлен вам в лаборатории компьютерной безопасности в Калифорнийском университете в Санта -Барбаре, SEFCOM в Университете штата Аризона, связанной с этим командой CTF, Shellphish, сообществом с открытым исходным кодом и @Rhelmot .
Домашняя страница: https://angr.io
Репозиторий проекта: https://github.com/angr/angr
Документация: https://docs.angr.io
Документация API: https://api.angr.io/en/latest/
Angr - это набор библиотек Python 3, который позволяет вам загрузить бинар и делать много крутых вещей:
Наиболее распространенной операцией ANGR является загрузка двоичного: p = angr.Project('/bin/bash') Если вы делаете это в расширенной переписке, такой как ipython, вы можете использовать Tab-Autocomplete для просмотра доступных методов верхнего уровня и их Docstrings.
Короткая версия «Как установить Angr» -это mkvirtualenv --python=$(which python3) angr && python -m pip install angr .
Angr делает много бинарного анализа. Чтобы начать вас, вот простой пример использования символического исполнения, чтобы получить флаг в вызове 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 ()