
В данной статье разберем: как и для чего применяется упаковка исполняемых файлов, как их обнаружить и распаковать, и решим 4-е задание с сайта pwnable.kr.
Организационная информация
Специально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и компьютерной безопасности, я буду писать и рассказывать о следующих категориях:
Вдобавок к этому я поделюсь своим опытом в компьютерной криминалистике, анализе малвари и прошивок, атаках на беспроводные сети и локальные вычислительные сети, проведении пентестов и написании эксплоитов.
Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем.
Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.
- PWN;
- криптография (Crypto);
- cетевые технологии (Network);
- реверс (Reverse Engineering);
- стеганография (Stegano);
- поиск и эксплуатация WEB-уязвимостей.
Вдобавок к этому я поделюсь своим опытом в компьютерной криминалистике, анализе малвари и прошивок, атаках на беспроводные сети и локальные вычислительные сети, проведении пентестов и написании эксплоитов.
Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем.
Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.
Упаковка исполняемых файлов
Упакованные файлы – это файлы, которые скрывают свой исходный код с помощью сжатия или шифрования. По мере выполнения, такой файл расшифровывает свой исходный код и копирует в другую секцию. Упаковщики обычно изменяют таблицу адресов импорта (IAT — Import Address Table) или таблицу просмотра импорта(ILUT — Import LookUp Table), а также заголовок.

Упаковка применяется по следующим причинам:
- упакованный файл занимает меньше места;
- для предотвращения обратной разработки программы;
- упаковка с шифрованием может использоваться и злонамеренно при создании вирусов, чтобы зашифровать и видоизменить код вируса для затруднения его обнаружения системами, основанными на сигнатурах.

Проводить анализ, упакована программа или нет, можно при помощи PEid или DetectItEasy. Для распаковки используются соответствующие программы или универсальные распаковщики, к примеру, Quick Unpack.


Известные упаковщики:
Решение задания flag
Нажимаем на иконку с подписью flag, и нам говорят, что мы можем скачать исполняемый файл.

Нам не дают исходный ход. Для анализа программы я буду использовать Cutter. Откроем Cutter, укажем путь к исполняемому файлу.

Наблюдаем очень странный граф программы и отсутствие функции main.

Проверим программу в DetectItEasy, который говорит, что наш файл упакован UPX.

Распакуем программу следующей командой.
upx -d flag

Теперь, если закинуть программу в Cutter, можно наблюдать функцию main и распакованные строки.

Видим строку с UPX. Найдем ее в списке строк.

Это и есть ответ. Как результат, получаем свои очки.

До встречи в следующих статьях!!!
Мы в телеграм канале: канал в Telegram.