z3_and_angr_binary_analysis_workshop
1.0.0
Первоначально доставленным Сэмом Брауном в Steelcon и Hack.lu 2018, это был трехчасовой семинар, который представлял участников использования Z3 и ANGR для бинарного анализа. Семинар предоставил введение в SMT Solvers, SMT SOLVER и его библиотеку Python и структуру бинарного анализа ANGR.
На протяжении всего обучения были предоставлены упражнения на семинар, направленные на демонстрацию потенциальных применений технологии для оказания помощи исследователям безопасности в проведении исследований обратной инженерии и уязвимости.
Слайды обеспечивают приблизительное руководство для содержания и в каком порядке пробовать упражнения.
| Имя | Тип | Описание |
|---|---|---|
| N Queens | Пример | «Как можно поместить N Queens на шахматную доску NXN, чтобы не было двух из них атаковать друг друга?» Использует Z3 для генерации решений для n * n шахматной доски |
| Hackvent 15 | Пример | Решение и пройти через решение вызова Hackvent 15 CTF с Z3 |
| Судоку | Упражнение | Попробуйте решить Sudoku, используя Z3 |
| Rng | Упражнение | Дополнительные упражнения - Использование Z3 для поиска некриптографически безопасных генераторов случайных чисел. |
| x86 | 50/50 | Половина примеров, наполовину DIY - Реализация Симиплифицированных версий инструкций x86 с использованием Z3 |
| Непрозрачные предикаты | Упражнение | Используйте инструкции, реализованные ранее для определения непрозрачных предикатов в небольших последовательностях инструкций сборки |
| Проверка эквивалентности | Пример | Используйте инструкции, реализованные ранее для определения эквивалентных последовательностей инструкций |
| Имя | Тип | Описание |
|---|---|---|
| opaque_predicates | Пример | Использование ANGR для определения непрозрачных предикатов с гораздо меньшей работой :) |
| Ioctls | Пример | Определите коды Driver Driver Windows, используя ANGR |
| Привет, мир | 50/50 | Упражнения и прохождение при использовании ANGR для генерации действительных аргументов для простого «валидатора лицензионного ключа» |
| Бомба лаборатория | Упражнение | DIY упражнения с использованием ANGR для решения «бомбардировки» |
Весь код находится в Python3, и вам нужно только установить структуру бинарного анализа ANGR.
mkvirtualenv --python=$(which python3) angr && python -m pip install angr
workon angr