Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
woody-woodpacker — Упаковщик ELF-бинарных файлов, который шифрует секции кода и внедряет заглушку для дешифровки во время выполнения для 64-битных исполняемых файлов Linux, демонстрируя методы внедрения кода и манипуляции бинарными файлами. | Kitploit
Инструменты/GitLabGitLab/aurh1l-42-projects/woody-woodpacker
Инструменты шифрования/дешифрованияОбратная инженерияАнализ Бинарных ФайловОбучение и ОбразованиеЭксплуатация Бинарных Файлов
GitLabaurh1l-42-projects/woody-woodpacker

woody-woodpacker

Упаковщик ELF-бинарных файлов, который шифрует секции кода и внедряет заглушку для дешифровки во время выполнения для 64-битных исполняемых файлов Linux, демонстрируя методы внедрения кода и манипуляции бинарными файлами.

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий
8 месяцев назадЕщё не проверено

Woody-Woodpacker

42 Project C ELF

Школьный проект 42, реализующий упаковщик бинарных файлов для 64-битных ELF-исполняемых файлов. Упаковщик шифрует секции кода исполняемого файла и внедряет процедуру дешифрования, которая выполняется во время выполнения.

🎯 О проекте

Woody-Woodpacker — это программа, которая принимает 64-битный ELF-бинарный файл и создаёт новую зашифрованную версию с именем woody. При выполнении бинарный файл woody:

  1. Расшифровывается во время выполнения
  2. Выводит "....WOODY...." в stdout в качестве подтверждения внедрения
  3. Выполняется нормально с поведением исходного бинарного файла

В этом проекте исследуются:

  • Форматы бинарных файлов (структура ELF)
  • Методы внедрения кода
  • Алгоритмы шифрования/дешифрования
  • Низкоуровневое программирование на C
  • Концепции реверс-инжиниринга

⚙️ Как это работает

Процесс упаковки

root@kitploit:~
Original Binary → [Woody-Woodpacker] → Encrypted Binary (woody)
  1. Разбор ELF-заголовка — чтение и анализ структуры ELF-файла
  2. Поиск секций кода — определение сегментов/секций для шифрования
  3. Шифрование кода — применение алгоритма шифрования к коду
  4. Внедрение заглушки дешифрования — добавление процедуры дешифрования в бинарный файл
  5. Изменение точки входа — перенаправление выполнения на заглушку дешифрования
  6. Запись нового бинарного файла — создание исполняемого файла woody

Процесс выполнения

root@kitploit:~
./woody → Decrypt code → Print "....WOODY...." → Execute original program

🔧 Предварительные требования

  • Компилятор GCC или Clang
  • Make
  • Операционная система Linux (для поддержки ELF-бинарных файлов)
  • Базовое понимание:
    • Программирования на C
    • Формата ELF-файлов
    • Языка ассемблера (x86-64)

🚀 Установка

root@kitploit:~
# Клонировать репозиторий
git clone https://gitlab.com/Aurh1l/woody-woodpacker.git
cd woody-woodpacker

# Скомпилировать проект
make

# Исполняемый файл woody_woodpacker готов
./woody_woodpacker

💻 Использование

Базовое использование

root@kitploit:~
./woody_woodpacker <binary_file>

Это создаёт новый файл с именем woody в текущем каталоге.

Пример

root@kitploit:~
# Упаковать бинарный файл
./woody_woodpacker /bin/ls

# Запустить упакованный бинарный файл
./woody
# Вывод: ....WOODY....
# [затем обычный вывод ls]

Проверка

root@kitploit:~
# Сравнить поведение исходного и упакованного бинарных файлов
/bin/ls -la
./woody -la

# Оба должны давать одинаковый вывод (после "....WOODY....")

🔍 Технические детали

Структура ELF-файла

Упаковщик манипулирует следующими компонентами ELF:

  • ELF-заголовок — основной заголовок файла, содержащий метаданные
  • Заголовки программ — информация о сегментах для загрузки
  • Заголовки секций — информация о секциях для компоновки
  • Сегменты кода — секция .text, содержащая исполняемый код

Алгоритм шифрования

В проекте обычно используется простой метод шифрования, например:

  • RC4 — поточный шифр

Метод внедрения

Инфицирование дополнения сегмента (метод Silvio Cesare):

  1. Увеличение размера сегмента в заголовке программы
  2. Внедрение заглушки дешифрования в область дополнения
  3. Изменение точки входа для перехода на заглушку
  4. Заглушка дешифрует код и переходит на исходную точку входа

Расположение в памяти

root@kitploit:~
┌─────────────────────────┐
│   ELF Header            │
├─────────────────────────┤
│   Program Headers       │
├─────────────────────────┤
│   Decryption Stub       │ ← Внедрённый код
├─────────────────────────┤
│   Encrypted .text       │ ← Исходный код (зашифрован)
├─────────────────────────┤
│   Other sections        │
├─────────────────────────┤
│   Section Headers       │
└─────────────────────────┘

📝 Лицензия

Этот проект является частью учебной программы школы 42 и предназначен только для образовательных целей.

⚠️ Отказ от ответственности

Этот инструмент создан в образовательных целях в рамках учебной программы школы 42. Используйте его ответственно и только для тех бинарных файлов, которыми вы владеете или на изменение которых имеете разрешение. Авторы не несут ответственности за любое неправомерное использование данного программного обеспечения.

Скачать инструмент