Blog. Just Blog

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

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

PDF Anti-Copy - программа для защиты содержимого PDF файлов от копирования и преобразования в MS Word, Excel, TXT или другие форматы которые можно редактировать. При этом сам PDF файл можно открыть и просматривать, но скопировать или преобразовать контент будет невозможно. Об этом гордо заявлено в официальных презентациях. А то, что программа по сути является платной надстройкой над тремя бесплатными утилитами - iTextSharp, Ghostscript и pdftk, об этом аффтар решил скромно умолчать. Что ж, приведем весь пакет к единому знаменателю, то есть к разряду бесплатных утилит.

Забираем с офсайта дистрибутив, мне больше нравится портативный вариант. Распаковываем, смотрим что и как. Главный исполняемый файл написан на дотнете, однако при попытке его посмотреть через dnSpy получается каша. Очевидно, что тут поработали каким-то обфускатором. Ничего страшного, у нас есть de4dot.

Снимаем обфускатор
Снимаем обфускатор

В очищенном файле легко обнаруживается форма, ответственная за ввод серийного номера. Давайте посмотрим ее обработчик.

Проверка серийного номера
Проверка серийного номера

В цикле перебираются все символы введенного серийника, при обнаружении в нем символов "W", "A", "N" и "G" взводятся или не взводятся четыре флага. Чего было не воспользоваться чем-нибудь типа strpos или какой там аналог на дотнете? Вторая проверка - длина введенного серийника должна быть равна 15 символов. Это все, что надо знать о серийном номере. Если не выполнены условия четырех флагов или длина серийника неправильная, то выводится сообщение о неправильной регистрации. Правильным серийником, например, может быть строка "MANHUNTERPCL-WG".

Запись признака регистрации
Запись признака регистрации

Если серийный номер признан правильным, то создается фейковый файл C:\Users\{USER}\AppData\Roaming\pacsound.dll с текстом "20130303" (без кавычек). То есть с серийником можно даже не заморачиваться, а просто вручную создать этот файл. В одном приложении собрана огромная куча плохих практик программирования. Впрочем, если предположить, что "20130303" - дата рождения аффтара этого поделия, то для восьмилетнего ребенка вроде нормально.

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

Программа радостно принимает серийник и после перезапуска все триальные надписи и ограничения пропадают. Цель достигнута. А ограничения, наложенные на PDF-файлы снимаются любым PDF Password Remover'ом, коих тут выкладывалось достаточное количество.

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

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

Комментарии

Отзывы посетителей сайта о статье
кодер (29.10.2021 в 18:49):
это было давно, при чем самое интересное, что прога была не только платная, но и позиционировалась как anti-malware tool. регистратор принимающий платежи не сразу врубился что к чему, думали false positive, ну там своя бюрократия.
User (29.10.2021 в 04:34):
>я одного такого товарища уже поймал за руку

и как рука, тёплая?
кодер (27.10.2021 в 20:43):
спасибо, поржал.

а вообще подобные "конторки" где в качестве контакта на сайте нет ни имени, фамилии, ни физического адреса, ни телефона, а указано только мыло "admin" - всегда очень подозрительные. через такие якобы безобидные софтины, косящие под шаровары, могут распространять трояны, я одного такого товарища уже поймал за руку.

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

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

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