
🗜️ Упаковщик для исполняемых файлов Windows x86, написанный на C и Intel x86 Assembly. Новый упакованный файл может затруднить обратную разработку (упаковщик исполняемых файлов Windows x86, разработанный на C и Intel x86 Assembly; упакованный новый файл может препятствовать обратному инжинирингу)

PE-Packer — это простой упаковщик для Windows PE-файлов. Новый PE-файл после упаковки может затруднить процесс обратной разработки.
При упаковке PE-файла выполняются следующие действия:
При запуске упакованного PE-файла shell-entry расшифровывает и загружает исходную программу следующим образом:
До упаковки с помощью некоторых дизассемблеров можно дизассемблировать исполняемый файл для анализа кода, например IDA Pro.
Дизассемблирование кода.

Поиск постоянных строк.

Анализ таблицы импорта.

После упаковки обратный анализ будет затруднён.
Дизассемблирование кода.

Поиск постоянных строк.

Анализ таблицы импорта.

Этот проект — всего лишь демонстрация для новичков, изучающих Windows PE Format и Assembly Language. У него всё ещё есть некоторые проблемы совместимости и ошибки, поэтому он не может использоваться на практике.
Проект должен быть настроен на/для Windows 32-bit и на данный момент может обрабатывать только 32-битные .exe-программы.
mkdir -p build
cd build
cmake .. -D CMAKE_C_COMPILER=gcc -G "MinGW Makefiles"
cmake --build .
Или выполните файл build.ps1 напрямую:
PS> .\build.ps1
Для упаковки программы необходимо указать её входное имя и выходное имя.
PE-Packer <input-file> <output-file>
Например:
PE-Packer hello.exe hello-pack.exe
Вы можете использовать Doxygen для генерации документации.
Распространяется под лицензией MIT License. См. файл LICENSE для получения дополнительной информации.