Blog. Just Blog

Исследование защиты программы Secure Delete

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Темная сторона Силы | Автор: ManHunter
Скриншот программы Secure Delete
Скриншот программы Secure Delete

Программа Secure Delete, по заверениям разработчиков, предназначена для гарантированного удаления файлов и каталогов без возможности их последующего восстановления. Перед удалением файл может быть несколько раз перезаписан случайными данными, у него может быть модифицирована дата создания, изменено имя файла, а также выполнены другие действия согласно выбранным настройкам безопасности. Без регистрации постоянно вываливает окна с предложением прогуляться в кассу, а также в таком режиме заблокированы некоторые полезные функции. Лицензия представляет наиболее мерзкую свою разновидность - платную подписку на ограниченный период. Что ж, будем исправлять.

Забираем с сайта дистрибутив, устанавливаем, смотрим что и как. Главный исполняемый файл написан на дотнете, да еще и накрыт обфускатором Obfuscar. Его особенность - полное шифрование строк, так что к текстовым данным привязаться не получится. Имеющийся у меня вариант de4dot с Obfuscar не справляется, поэтому придется искать другие варианты решения.

Снимаем обфускацию
Снимаем обфускацию

В природе имеется инструмент, заточенный именно для снятия Obfuscar, это DEObfuscar от XenocodeRCE. Утилита старая, давно не обновлялась. На выходе получается нерабочий файл даже после выполнения рекомендаций по предобработке файла при помощи de4dot. Но даже такой файл позволяет в основном понять логику работы программы, а при наличии расшифрованных строк анализ облегчается на порядки.

Вызов триального окна
Вызов триального окна

Поищем в деобфусцированном файле что-нибудь, связанное со строкой "Pro", так как именно это должно быть в полной версии. Поиском обнаруживается несколько вхождений, пробежавшись по которым можно посмотреть содержимое их кода. Одно из мест очень любопытное. Тут проверяется условие, после чего открывается форма с характерным названием "uf_form_offerpro". И, как видно из кода, за ее появление отвечает флаг global::A.F.A.

Инициализация флага
Инициализация флага

Кликом на названии переходим на код, в котором этот флаг инициализируется значением false. Теперь открываем в dnSpy оригинальный файл и в списке классов находим класс "A", в нем метод "F" и уже в нем первый метод - инициализация. Но, как мы помним, в оригинальном файле все обфусцировано. Однако, структуру кода легко узнать.

Обфусцированный код
Обфусцированный код

Теперь надо отредактировать команду, чтобы флаг инициализировался правильным значением, то есть true.

Модифицируем IL-команду
Модифицируем IL-команду

Через контекстное меню открываем на редактирование IL-команду. Любые другие способы редактирования ни к чему хорошему не приведут. Поскольку тут просто используется булева переменная, то заменяем значение 0 на 1, то есть false на true. Сохраняем изменения.

Измененная инициализация флага
Измененная инициализация флага

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

Программа успешно "зарегистрирована"
Программа успешно "зарегистрирована"

Все ограничения сняты, функционал полной версии разблокирован, никаких надоедливых окон больше не появляется. Цель достигнута. Вот таким образом можно патчить программы даже под обфускаторами. Конечно, все зависит от программы и от использованного обфускатора, но, как видите, это вполне возможно.

Поделиться ссылкой ВКонтакте
Просмотров: 550 | Комментариев: 1

Комментарии

Отзывы посетителей сайта о статье
0101 (07.11.2024 в 13:18):
Не получается, ну и хвост с ней, не очень-то и хотелось. Без неё куча прог с затиранием перезаписью. Кстати, распаковывается вот этим:
https://github.com/cod3nym/Deobfuscar

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

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

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