МОДУЛЬ 4:
реверс-инжиниринг
Уникальная образовательная платформа, созданная специально для тех, кто стремится освоить основы кибербезопасности и научиться защищать своё цифровое пространство
Советы для новичков
Как происходит реверс
Инструменты реверсера
Что можно реверсить?
Что такое реверс-инжиниринг
Реверс-инжиниринг (reverse engineering) — это исследование и анализ работы программы без доступа к её исходному коду. В CTF-задачах по реверсу тебе часто дают бинарный файл, exe-шник или скрипт с обфускацией, и твоя задача — понять, что он делает и где спрятан флаг.

На практике реверс применяют для:
  • анализа вредоносных программ
  • аудита безопасности (например, как работает защита приложения)
  • совместимости с ПО, к которому нет исходников (legacy system, драйверы)
  • поиска уязвимостей и понимания логики чужого кода
  • Ghidra: Декомпилятор и анализатор кода от NSA. Бесплатный, мощный
  • IDA Free / Pro: Стандарт де-факто. Удобен, но платный (Free урезан)
  • Cutter: GUI-оболочка для Radare2. Красиво, бесплатно, эффективно
  • Radare2 / Rizin: Консольный зверь для профи. Сильно, но требует опыта
  • objdump: CLI-дизассемблер. Быстрый, системный
  • gdb: Отладчик. Запуск бинарей по шагам, установка брейков
  • strings: Просмотр строк в бинаре. Быстро понять, есть ли флаг
  • file: Определение типа бинарника
Скомпилированные программы (на C/C++/Go/Rust)
  • Это обычные .exe, .out, .elf, .bin, .so, .dll
  • Они содержат машинный код, инструкции, адреса, таблицы вызовов и строки.

Интерпретируемые байткоды (Java .class, Python .pyc, .NET .dll)
  • Здесь ты работаешь с промежуточным кодом (JVM, CLR, CPython)

Скрипты с обфускацией (JS, Lua, Python)
  • Код доступен, но запутан. Нужно распутать, восстановить смысл.

Файлы с нестандартными структурами (фирменные форматы, проприетарные бинарники)
  • Часто встречаются в играх, прошивках и IoT-устройствах
  • Начинай с strings, file, ltrace, strace — это уже даёт половину понимания
  • Ghidra — топ для новичка. У неё автокомментарии, граф вызовов и цветные блоки
  • Не пугайся ассемблера — ищи паттерны: сравнение, условия, вызовы функций
  • Всегда ищи strcmp, scanf, memcpy, strstr, puts, printf
  • Запутались? Нарисуй блок-схему вручную!
  • Один break в нужном месте в gdb может заменить час анализа

📌 Важно! Всё, чему ты учишься на заданиях по реверсу, применяется только в образовательных и этичных целях. Анализировать чужие программы без разрешения — противозаконно. В рамках CTF — ты учишься защищать, а не ломать.
Шаг 1. Быстрый анализ:
  • file binary — что за файл?
  • strings binary — есть ли читаемые строки?
  • checksec binary — какие защиты включены?

Шаг 2. Загрузка в декомпилятор:
  • Открываем в Ghidra / Cutter
  • Ищем main, check_password, validate, flag, print, input
  • Смотрим, какие функции вызываются, есть ли сравнения с флагом

Шаг 3. Понимание логики:
  • Следим за переменными, условиями, циклами
  • Переименовываем переменные в понятные
  • Строим цепочку: Ввод → Обработка → Сравнение → Успех

Шаг 4. Тест и обход:
  • Используем gdb или встроенный отладчик
  • Пробуем ввести разные значения, ловим нужный путь исполнения
  • Можно пропатчить бинарь, чтобы пропустить проверку (NOP-инжект)
Стань героем цифрового мира!
Обучись кибербезопасности и защити своё цифровое пространство
ekaterina.naumovaka@gmail.com
Свяжитесь с нами
Made on
Tilda