Blog. Just Blog

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

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

PDF Reducer - очень полезная, хоть и специфическая программа. Она позволяет оптимизировать PDF-файлы, заметно сокращая их размер. Оптимизация выполняется за счет пережатия встроенных картинок, удаления ненужной информации, неиспользуемых встроенных объектов и т.п. В бесплатной редакции программы ограничен функционал, постоянно вылазит окно с напоминанием о регистрации, а профессиональная версия без лицензионного ключа даже не запустится. Что ж, попробуем со всем этим разобраться.

Профессиональная версия
Профессиональная версия

Забираем с офсайта дистрибутив, устанавливаем, смотрим. Сама программа, как и все ее компоненты, написана на дотнете, значит и набор инструментов для ее ковыряния нам надо подобрать соответствующий.

Избавляемся от обфускатора
Избавляемся от обфускатора

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

Сообщение о неправильной регистрации
Сообщение о неправильной регистрации

Отлично, теперь у нас есть все данные для работы: чистый исполняемый файл и строка сообщения о неправильной регистрации. Запускаем следующий инструмент - свеженькую версию dnSpy 4.0.0.

Строка сообщения
Строка сообщения

Что мы имеем? функция проверяет входное значение, по его результатам выдает сообщение о неправильной регистрации. Посмотрим, где и при каких условиях используется функция регистрации.

Последовательность вызовов
Последовательность вызовов

Раскручивая последовательность вызовов мы придем к методу frmMain_Activated:

Вызов функции проверки
Вызов функции проверки

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

Открываем метод класса на редактирование
Открываем метод класса на редактирование

Как мы знаем, при значении num=1 сразу выполняется возврат из проверки, вот и внесем нужные изменения:

Редактируем код
Редактируем код

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

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

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

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

Внимание! Статья опубликована больше года назад, информация могла устареть!

Комментарии

Отзывы посетителей сайта о статье
Petya (16.07.2020 в 13:02):
Ну а что, в общем виде, делать с ситуацией "после деобфускации не пашет"?
Михаил (03.06.2020 в 08:47):
а можно обновить ссылочку на ваш de4dot
xussr (18.02.2018 в 12:55):
Чем таким новую версию фукнули de4dot уже бесполезен
Александр (15.12.2017 в 17:13):
Для уменьшения размера PDF за счет изменения качества изображений, использую бесплатную "Reduce PDF Size". Ее функционала зачастую достаточно.
Евгений (14.12.2017 в 13:34):
плюс еще и стронг нейм прицеплен.
ManHunter (14.12.2017 в 13:30):
Да то же самое, только цифровые значения под обфускатором.
Евгений (14.12.2017 в 12:57):
В новой версии совсем они все поменяли.
http://s013.radikal.ru/i322/17...c60be6bf.jpg
ManHunter (07.12.2017 в 10:42):
Alt+T, потом Ctrl+T. Но здесь это зачем?
nubuser (07.12.2017 в 10:04):
Подскажите, пожалуйста, как в IDA искать в листинге, скажем, PUSH 74H?
ManHunter (05.12.2017 в 22:46):
Ну так тут вообще никакой рекламы нет, можно и в исключения добавить.
Vladimir (05.12.2017 в 22:12):
У вас в пути к картинке /ad/ и блокиратором она режется. В исключения сайт добавить можно, но вы сами ведь за блокировку рекламы.)
xussr (03.12.2017 в 22:53):
Спасибо за пример
Михаил (03.12.2017 в 13:31):
По всей видимости действительно мод. Теперь все отработало на ура. Спасибо. Возможно стоит такие и для .Net сделать отдельную страчнику по типу http://www.manhunter.ru/underg..._faylov.html
ManHunter (03.12.2017 в 13:01):
Хороший вопрос :) de4dot установлен уже давным-давно, источников не помню. Даже не исключаю, что какая-то неофициальная сборка или мод.
Вот моя версия: http://rgho.st/6M9ynsrkk
Михаил (03.12.2017 в 12:45):
нет, я версию .20 и смотрю. У вас de4dot от сюда? https://ci.appveyor.com/projec...ld/artifacts Он мне 20ую версию чистит что она не запускается, манипуляции все делаю на Вин7 х86
ManHunter (03.12.2017 в 12:32):
Я понял в чем причина. На сайте уже версия .21 с новым обфускатором, а статью я рисовал по версии .20, потому и нестыковки. Вот дистрибутив, по которому все делалось: http://rgho.st/6QBwVylht
Михаил (03.12.2017 в 10:41):
если можно чуток поподробнее про de4dot так как у меня на выходе вышел файл 800 килобайт, ваш смотрю больше метра
Михаил (03.12.2017 в 09:31):
спасибо. Но к сожалению у меня после de4dot программа не хочет запускаться более

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

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

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