5.2 KiB
🩸 РЕВЕРС-ИНЖИНИРИНГ С НУЛЯ: ГАЙД 2026
Полный путь от нуля до самостоятельного анализа бинарников: база, инструменты, пайплайн, реверс через ИИ, материалы. Всё бесплатное или с free-версией.
🩸 ШАГ 1. БАЗА
Без этого инструменты бесполезны:
- C — указатели, память, структуры, строки
- Ассемблер x86-64 — регистры, стек, calling conventions, переходы
- Compiler Explorer (https://godbolt.org/) — пишешь функцию на C, видишь её ассемблер. Лучший способ понять, что делает компилятор
- Формат PE (https://learn.microsoft.com/windows/win32/debug/pe-format) — заголовки, секции, таблица импортов
Результат: свободно читаешь ассемблерный листинг простой функции.
🩸 ШАГ 2. ИНСТРУМЕНТЫ
- Ghidra (https://github.com/NationalSecurityAgency/ghidra) — дизассемблер + декомпилятор, бесплатный. Основной инструмент для обучения, скриптится на Python через Ghidrathon (https://github.com/mandiant/Ghidrathon)
- x64dbg (https://x64dbg.com/) — отладчик Windows
- Detect It Easy (https://github.com/horsicq/Detect-It-Easy) — определение компилятора, протектора, упаковщика
- HxD (https://mh-nexus.de/hxd/) — hex-редактор
Позже пригодятся: IDA Pro (https://hex-rays.com/) — эталонный декомпилятор Hex-Rays; Binary Ninja (https://binary.ninja/) — API для автоматизации; radare2 (https://github.com/radareorg/radare2) / rizin (https://github.com/rizinorg/rizin) + Cutter (https://github.com/rizinorg/cutter) — консольный стек.
🩸 ШАГ 3. ПРАКТИКА
- crackmes.one (https://crackmes.one/) — задачи по реверсу, сложность 1–6
- Порядок: 15–20 задач 1☆, затем 10–15 задач 2☆, затем 3☆
- Осваиваются: поиск точки входа, паттерн проверки пароля, простые анти-отладочные приёмы
- ROP Emporium (https://ropemporium.com/) — exploitation по шагам
Результат: самостоятельно разбираешь небольшой бинарь от запуска до ответа.
🩸 ШАГ 4. СИСТЕМА
- pwn.college (https://pwn.college/) — бесплатные модули от ASU: ассемблер, основы RE, автопроверка, 15–25 задач на модуль
- OpenSecurityTraining2 (https://p.ost2.fyi/) — реверс C++, символьное исполнение, отладчики, UEFI
- RE-MA-Roadmap (https://github.com/x86byte/RE-MA-Roadmap) — roadmap от нуля до malware-аналитика
🩸 ШАГ 5. ПАЙПЛАЙН АНАЛИЗА БИНАРЯ
Порядок, по которому разбирают реальные сэмплы. Перед запуском чего-либо живого: виртуалка + снапшот, без общих папок и реальной сети.
- Триаж без запуска: DIE — упаковщик/компилятор; FLOSS (https://github.com/mandiant/flare-floss) — строки, включая обфусцированные; capa (https://github.com/mandiant/capa) — capabilities с маппингом на ATT&CK
- Распаковка: натив — x64dbg до OEP, дамп, IAT чинит Scylla (https://github.com/NtQuery/Scylla); .NET — de4dot-форк (https://github.com/kant2002/de4dot), разбор в dnSpyEx (https://github.com/dnSpyEx/dnSpy); без запуска — Qiling (https://github.com/qilingframework/qiling)
- Статика: Ghidra/IDA — декомпиляция, xrefs, переименование
- Динамика: отладчик для проверки гипотез; Frida (https://frida.re/) — хуки на функции, снятие конфигов
- Деобфускация: D-810 (https://gitlab.com/eshard/d810) — MBA и flattening в декомпиляторе IDA; эмуляция и трейсинг — Unicorn (https://github.com/unicorn-engine/unicorn), Qiling, angr (https://github.com/angr/angr)
- Поведение: FakeNet-NG (https://github.com/mandiant/flare-fakenet-ng) — перехват трафика; CAPEv2 (https://github.com/kevoreilly/capev2) — сэндбокс; Speakeasy (https://github.com/mandiant/speakeasy) — эмуляция малвари и драйверов без VM
- Диффинг версий: BinDiff (https://github.com/google/bindiff) / Diaphora (https://github.com/joxeankoret/diaphora) — что изменил вендор, где была дыра
- Выход: YARA-правило (https://github.com/VirusTotal/yara), IOC, отчёт
Шаг 6 — реверс через ИИ — во 2-м и 3-м сообщениях.
👻 иишко