Распаковка приложений DеcSоft HTML Compiler
Распаковка приложений DеcSоft HTML Compiler
На днях мне задали интересный вопрос о возможности распаковки приложений, созданных разобранной ранее программой DеcSоft HTML Compiler. По заверениям аффтаров скомпилированные приложения абсолютно защищены, ничего из них извлечь нельзя, бла-бла-бла. Ну все как обычно, красивые песни коммерческих разработчиков для наивных потребителей. Давайте для разнообразия разбавим череду статей про исследование защит и проверим истинность этих слов.
Собираем тестовый проект
Запускаем компилятор и собираем любой проект из готовых примеров. Для чистоты эксперимента лучше взять что-нибудь такое, где не просто один index.htm, а несколько рабочих файлов. После компиляции в папке с проектом обнаруживаются два файла неприлично монстрячих размеров. Это как раз готовые "электронные книги" в двух разрядностях.
ZIP-архив в файле
Логично предположить, что, как и большинство исполняемых файлов с данными внутри (архивы, инсталляторы и т.п.), эти приложения должны иметь схожую структуру, то есть исполняемый стаб + пакет файлов. Если открыть на просмотр любой их этих файлов и промотать до самого конца, то там обнаружится очень характерный блок данных. Те, кто интересуется файлами не только снаружи, но и изнутри, без труда узнают содержимое ZIP-архива, а точнее его центральной директории. По именам файлов понятно, что в него упакованы все исходные файлы проекта и дополнительные модули, например, WebView2LoaderWin32.dll. Теперь надо отцепить этот архив от стаба.
Начало ZIP-архива
По данным центральной директории первым в архиве идет файл WebView2LoaderWin32.dll, вот его и поищем, причем рядом с ним должна быть сигнатура заголовка ZIP-архива 50 4B 03 04. Любым удобным вам способом сохраняем все данные от "PK" до конца файла. Если под рукой есть инструменты для работы с оверлеями, то, в принципе, достаточно просто сохранить оверлей, результат будет точно такой же. На выходе получаем чистый ZIP-архив с файлами проекта.
Информация об архиве
WinRAR при открытии этого архива сообщает нам несколько важных вещей. Во-первых, архив запаролен. Ну да, было бы вообще полным фиаско не сделать даже этого. Во-вторых, файлы в архив добавлены методом store, то есть без компрессии. Вообще. И это при условии, что содержимое проектов в основном подразумевает некие текстовые данные, прекрасно поддающиеся сжатию. А правда, чего стесняться-то, десять мегабайт туда, двадцать сюда, кого волнует?
Как можно извлечь данные из запароленного архива? Брутфорс тут нам не помощник, длина пароля может оказаться достаточно большой, чтобы ее невозможно было подобрать за разумное время. К счастью, подобные ZIP-архивы прекрасно ломаются при помощи plaintext-атаки, то есть, зная содержимое одного из файлов, можно извлечь информацию из всего архива, даже не зная пароля. Предположим, что содержимое исходных файлов проекта для нас неизвестно, но зато в архиве присутствует файл загрузчика WebView2LoaderWin32.dll. Его оригинал можно найти под немного другим именем WebView2Loader.dll в папке \Binaries с установленной программой.
Создаем архив для plaintext-атаки
Создаем архив для выполнения атаки. Для этого сперва пакуем файл WebView2Loader.dll в ZIP-архив без сжатия.
Файлы совпадают
Убеждаемся, что это действительно один и тот же файл. Размеры и контрольные суммы в обоих архивах совпадают.
Настройки для plaintext-атаки
Теперь нужна программа для взлома архивов, но не абы какая, а с поддержкой plaintext-атаки. У меня это будет какая-то старая версия Elcomsoft Advanced Archive Password Recovery. Каких-то тайных смыслов в выборе софта искать не надо, пользуюсь тем, что быстро нашлось под рукой. Выбираем исходный архив с паролем, выбираем тип атаки, выбираем архив с контрольным файлом.
Файл успешно дешифрован
Менее чем через 20 секунд программа рапортует об успешном взломе архива. Сохраняем дешифрованный архив на диск. Сам пароль мы не узнали, зато на основе известного файла смогли снять шифрование с остальных данных в архиве, а большего нам и не надо.
Содержимое файлов в архиве
Открываем взломанный архив в любимом архиваторе и спокойно извлекаем из него абсолютно все данные, которые находились в исходном проекте. Цель достигнута, выводы сделайте сами.
Просмотров: 1271 | Комментариев: 11
Метки: распаковка, реверсинг
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
ManHunter
(13.11.2023 в 16:56):
Готовый взял
Илья
(13.11.2023 в 16:51):
А программу Elcomsoft Advanced Archive Password Recovery вашей версии вы сами взламывали?
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 бы не сработала или заметно прибавила б головной боли.
Ну, Kanal скажет, как и сейчас.
По strings можно будет догадаться (Zip имена не шифрует).
Если понять, что это Zip, можно CRC искомых файлов в качестве отправной точки задействовать.
Лучше уж архиватор редкий задействовать, типа чуда техники под гордым названием KGB или ещё чего похуже.
Ну, Kanal скажет, как и сейчас.
По strings можно будет догадаться (Zip имена не шифрует).
Если понять, что это Zip, можно CRC искомых файлов в качестве отправной точки задействовать.
Лучше уж архиватор редкий задействовать, типа чуда техники под гордым названием KGB или ещё чего похуже.
pawel97
(30.10.2022 в 15:03):
"сигнатура заголовка ZIP-архива 50 4B 03 04"
Воот. А стоит поправить либы упаковки-распаковки для использования других сигнатур, добавить / изменить размер пары полей структур - и никто не скажет что там zip. Хороший пример - инсталятор Sound Forge
Воот. А стоит поправить либы упаковки-распаковки для использования других сигнатур, добавить / изменить размер пары полей структур - и никто не скажет что там zip. Хороший пример - инсталятор Sound Forge
Rustamer
(30.10.2022 в 10:12):
Эх, а у меня вот иконки WinRAR вызвали приступы ностальгии. Годы идут..
Да даже бесплатные иконки FatCow уже не встретишь так часто в подобных сабжу поделках.
Да даже бесплатные иконки 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
Ищем в нем адреса ZIP2, найдутся две штуки.
В отладчике идём по найденным адресам и ставим бряки на начало процедуры.
Запускаем жертву в отладчике и после остановки в ЕАХ лицезреем пароль типа oek393j30si2ndio4rn4u34bn08oindi9239
Добавить комментарий
Заполните форму для добавления комментария