Исследование защиты программы PDF Reducer
Скриншот программы PDF Reducer
PDF Reducer - очень полезная, хоть и специфическая программа. Она позволяет оптимизировать PDF-файлы, заметно сокращая их размер. Оптимизация выполняется за счет пережатия встроенных картинок, удаления ненужной информации, неиспользуемых встроенных объектов и т.п. В бесплатной редакции программы ограничен функционал, постоянно вылазит окно с напоминанием о регистрации, а профессиональная версия без лицензионного ключа даже не запустится. Что ж, попробуем со всем этим разобраться.
Профессиональная версия
Забираем с офсайта дистрибутив, устанавливаем, смотрим. Сама программа, как и все ее компоненты, написана на дотнете, значит и набор инструментов для ее ковыряния нам надо подобрать соответствующий.
Избавляемся от обфускатора
Сперва пройдемся по исполняемому файлу программой de4dot. Во-первых, так мы узнаем, была ли чем-то накрыта программа, во-вторых, с большой долей вероятности сразу же получим чистенький файл для дальнейших исследований. И действительно, на файл был накручен обфускатор, который de4dot успешно нейтрализовал. На всякий случай убеждаемся в работоспособности очищенного файла и переходим к следующему шагу исследований. На ввод неправильных регистрационных данных программа реагирует следующим сообщением:
Сообщение о неправильной регистрации
Отлично, теперь у нас есть все данные для работы: чистый исполняемый файл и строка сообщения о неправильной регистрации. Запускаем следующий инструмент - свеженькую версию dnSpy 4.0.0.
Строка сообщения
Что мы имеем? функция проверяет входное значение, по его результатам выдает сообщение о неправильной регистрации. Посмотрим, где и при каких условиях используется функция регистрации.
Последовательность вызовов
Раскручивая последовательность вызовов мы придем к методу frmMain_Activated:
Вызов функции проверки
Тут надо просто посмотреть, какими значениями инициализируются переменные, и какие действия на их основании выполняются. Как видим, при значении 1 просто выполняется возврат из функции проверки, при прочих значениях открывается диалог регистрации. Подкорректируем метод, чтобы сразу было правильное значение.
Открываем метод класса на редактирование
Как мы знаем, при значении num=1 сразу выполняется возврат из проверки, вот и внесем нужные изменения:
Редактируем код
Сохраняем изменения. Теперь при запуске никаких регистраций не требуется, программа работает в профессиональном режиме без ограничений.
Программа успешно "зарегистрирована"
Файлы открываются, оптимизируются и сохраняются без проблем, перевод времени на пару месяцев вперед также не отразился на работоспособности программы. Цель достигнута.
Просмотров: 2832 | Комментариев: 19
Метки: исследование защиты, .NET
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
Petya
(16.07.2020 в 13:02):
Ну а что, в общем виде, делать с ситуацией "после деобфускации не пашет"?
ManHunter
(03.06.2020 в 10:56):
Михаил
(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
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
Вот моя версия: 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 программа не хочет запускаться более
Добавить комментарий
Заполните форму для добавления комментария