Angr – платформа бинарного анализа, не зависящая от платформы.
Он представлен вам Лабораторией компьютерной безопасности в Калифорнийском университете в Санта-Барбаре, SEFCOM в Университете штата Аризона, их ассоциированной командой CTF, Shellphish, сообществом открытого исходного кода и @rhelmot.
Angr – это набор библиотек Python 3, которые позволяют загружать двоичный файл и делать с ним много интересных вещей:
- Разборка и снятие промежуточного представления
- Программное оснащение
- Символическое исполнение
- Анализ потока управления
- Анализ данных
- Анализ значений (VSA)
- Декомпилирование
Наиболее распространенной операцией angr является загрузка двоичного файла: p=angr.Project(‘/bin/bash’).
Если вы делаете это в расширенном REPL, таком как IPython, вы можете использовать tab-autocomplete для просмотра доступных на верхнем уровне методов и их строки документов.
Краткая версия «как установить 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()
Быстрый старт
- Инструкция по установке
- Документация в формате HTML и в качестве хранилища Github
- Погрузитесь в: доступные на высшем уровне методы
- Примеры использования Angr для решения задач CTF.
- Справочник по API
Скачать Angr