Blog. Just Blog

Распаковка приложений DеcSоft HTML Compiler

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Темная сторона Силы | Автор: ManHunter
Распаковка приложений DеcSоft HTML Compiler
Распаковка приложений DеcSоft HTML Compiler

На днях мне задали интересный вопрос о возможности распаковки приложений, созданных разобранной ранее программой DеcSоft HTML Compiler. По заверениям аффтаров скомпилированные приложения абсолютно защищены, ничего из них извлечь нельзя, бла-бла-бла. Ну все как обычно, красивые песни коммерческих разработчиков для наивных потребителей. Давайте для разнообразия разбавим череду статей про исследование защит и проверим истинность этих слов.

Собираем тестовый проект
Собираем тестовый проект

Запускаем компилятор и собираем любой проект из готовых примеров. Для чистоты эксперимента лучше взять что-нибудь такое, где не просто один index.htm, а несколько рабочих файлов. После компиляции в папке с проектом обнаруживаются два файла неприлично монстрячих размеров. Это как раз готовые "электронные книги" в двух разрядностях.

ZIP-архив в файле
ZIP-архив в файле

Логично предположить, что, как и большинство исполняемых файлов с данными внутри (архивы, инсталляторы и т.п.), эти приложения должны иметь схожую структуру, то есть исполняемый стаб + пакет файлов. Если открыть на просмотр любой их этих файлов и промотать до самого конца, то там обнаружится очень характерный блок данных. Те, кто интересуется файлами не только снаружи, но и изнутри, без труда узнают содержимое ZIP-архива, а точнее его центральной директории. По именам файлов понятно, что в него упакованы все исходные файлы проекта и дополнительные модули, например, WebView2LoaderWin32.dll. Теперь надо отцепить этот архив от стаба.

Начало ZIP-архива
Начало ZIP-архива

По данным центральной директории первым в архиве идет файл WebView2LoaderWin32.dll, вот его и поищем, причем рядом с ним должна быть сигнатура заголовка ZIP-архива 50 4B 03 04. Любым удобным вам способом сохраняем все данные от "PK" до конца файла. Если под рукой есть инструменты для работы с оверлеями, то, в принципе, достаточно просто сохранить оверлей, результат будет точно такой же. На выходе получаем чистый ZIP-архив с файлами проекта.

Информация об архиве
Информация об архиве

WinRAR при открытии этого архива сообщает нам несколько важных вещей. Во-первых, архив запаролен. Ну да, было бы вообще полным фиаско не сделать даже этого. Во-вторых, файлы в архив добавлены методом store, то есть без компрессии. Вообще. И это при условии, что содержимое проектов в основном подразумевает некие текстовые данные, прекрасно поддающиеся сжатию. А правда, чего стесняться-то, десять мегабайт туда, двадцать сюда, кого волнует?

Как можно извлечь данные из запароленного архива? Брутфорс тут нам не помощник, длина пароля может оказаться достаточно большой, чтобы ее невозможно было подобрать за разумное время. К счастью, подобные ZIP-архивы прекрасно ломаются при помощи plaintext-атаки, то есть, зная содержимое одного из файлов, можно извлечь информацию из всего архива, даже не зная пароля. Предположим, что содержимое исходных файлов проекта для нас неизвестно, но зато в архиве присутствует файл загрузчика WebView2LoaderWin32.dll. Его оригинал можно найти под немного другим именем WebView2Loader.dll в папке \Binaries с установленной программой.

Создаем архив для plaintext-атаки
Создаем архив для plaintext-атаки

Создаем архив для выполнения атаки. Для этого сперва пакуем файл WebView2Loader.dll в ZIP-архив без сжатия.

Файлы совпадают
Файлы совпадают

Убеждаемся, что это действительно один и тот же файл. Размеры и контрольные суммы в обоих архивах совпадают.

Настройки для plaintext-атаки
Настройки для plaintext-атаки

Теперь нужна программа для взлома архивов, но не абы какая, а с поддержкой plaintext-атаки. У меня это будет какая-то старая версия Elcomsoft Advanced Archive Password Recovery. Каких-то тайных смыслов в выборе софта искать не надо, пользуюсь тем, что быстро нашлось под рукой. Выбираем исходный архив с паролем, выбираем тип атаки, выбираем архив с контрольным файлом.

Файл успешно дешифрован
Файл успешно дешифрован

Менее чем через 20 секунд программа рапортует об успешном взломе архива. Сохраняем дешифрованный архив на диск. Сам пароль мы не узнали, зато на основе известного файла смогли снять шифрование с остальных данных в архиве, а большего нам и не надо.

Содержимое файлов в архиве
Содержимое файлов в архиве

Открываем взломанный архив в любимом архиваторе и спокойно извлекаем из него абсолютно все данные, которые находились в исходном проекте. Цель достигнута, выводы сделайте сами.

Поделиться ссылкой ВКонтакте Поделиться ссылкой на Facebook Поделиться ссылкой на LiveJournal Поделиться ссылкой в Мой Круг Добавить в Мой мир Добавить на ЛиРу (Liveinternet) Добавить в закладки Memori Добавить в закладки Google
Просмотров: 460 | Комментариев: 9

Комментарии

Отзывы посетителей сайта о статье
ManHunter (02.11.2022 в 19:31):
Если бы у бабушки был хуй, то это был бы дедушка
Petya (31.10.2022 в 18:18):
Работает, но открытый текст надо ещё достать. Перед шифрованием выполняется сжатие, следовательно надо угадывать используемую библиотеку и её настройки. Вероятно, это был бы Info-ZIP (но без гарантии), а WinRAR жмёт не так.
ManHunter (31.10.2022 в 18:14):
Plaintext прекрасно работает и на сжатых файлах.
Petya (31.10.2022 в 18:12):
Что интересно, если бы они заморочились на сжатие, атака ManHunter'a бы не сработала или заметно прибавила б головной боли.
Цитатаи никто не скажет что там zip

Ну, Kanal скажет, как и сейчас.
По strings можно будет догадаться (Zip имена не шифрует).
Если понять, что это Zip, можно CRC искомых файлов в качестве отправной точки задействовать.
Лучше уж архиватор редкий задействовать, типа чуда техники под гордым названием KGB или ещё чего похуже.
pawel97 (30.10.2022 в 15:03):
"сигнатура заголовка ZIP-архива 50 4B 03 04"
Воот. А стоит поправить либы упаковки-распаковки для использования других сигнатур, добавить / изменить размер  пары полей структур - и никто не скажет что там zip. Хороший пример - инсталятор Sound Forge
Rustamer (30.10.2022 в 10:12):
Эх, а у меня вот иконки WinRAR вызвали приступы ностальгии. Годы идут..
Да даже бесплатные иконки FatCow уже не встретишь так часто в подобных сабжу поделках.
DRON (30.10.2022 в 03:24):
Причём пароль явно получен путём тыкания пальчиками левой и правой руки попеременно: есть явное чередование и нет символов из центра клавиатуры.
ManHunter (29.10.2022 в 14:52):
Да даже не "типа", а это единый пароль для всех архивов.
voffka (29.10.2022 в 14:46):
Для старого доброго PEID есть плагин Kanal (Krypto ANALyzer).
Ищем в нем адреса ZIP2, найдутся две штуки.
В отладчике идём по найденным адресам и ставим бряки на начало процедуры.
Запускаем жертву в отладчике и после остановки в ЕАХ лицезреем пароль типа oek393j30si2ndio4rn4u34bn08oindi9239

Добавить комментарий

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

*Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п., а также флуд и сообщения не по теме, будут удаляться. Нарушителям может быть заблокирован доступ к сайту.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2022
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.07 сек. / MySQL: 2 (0.0062 сек.) / Память: 4.75 Mb
Наверх