Blog. Just Blog

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

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

phpDesigner - интегрированная среда разработки для начинающих и профессиональных web-программистов. Поддерживает синтаксис основных языков web-программирования, отладку, системы контроля версий, фреймворки, проверку синтаксиса, таблицы стилей и многое-многое другое. Без регистрации работает ограниченное время, после чего требует покупки. Но, как говорится в старом анекдоте, "перебьетесь" пишется с мягким знаком.

Офсайт проекта работает, но домен, на котором складируются дистрибутивы, сдох за неуплату. Видимо, денег от продажи софта на оплату не хватило. Так что забираем один из последних найденных дистрибутивов с файлообменника. Распаковываем, устанавливаем, смотрим.

Триальное окно
Триальное окно

С ходу нас встречает триальное окно с предложением зарегистрироваться или продолжить испытательный период. В окне "О программе" красуется надпись "UNREGISTERED!", начнем поиски с нее.

Строка в файле
Строка в файле

Главный исполняемый файл ничем не упакован, отправляем его в дизассемблер. Когда тот закончит работу, посмотрим условия появления этой надписи. По единственной перекрестной ссылке выходим на следующий код:
  1. CODE:009ED543                 mov     eax, [ebx+830h]
  2. ; Вызвать функцию проверки
  3. CODE:009ED549                 call    sub_8211C4
  4. CODE:009ED54E                 test    al, al
  5. ; Если она вернула AL=0, то вывести надпись
  6. CODE:009ED550                 jnz     short loc_9ED562
  7. CODE:009ED552                 mov     edx, offset aUnregistered
  8. ; "UNREGISTERED!"
  9. CODE:009ED557                 mov     eax, [ebx+0A1Ch]
  10. CODE:009ED55D                 call    sub_4D89BC
Функция проверки представляет собой крохотный переходничок для вызова еще одной функции:
  1. CODE:008211C4 sub_8211C4      proc near
  2. CODE:008211C4                 call    sub_8213AC
  3. CODE:008211C9                 retn
  4. CODE:008211C9 sub_8211C4      endp
Вбиваем по адресу 008213AC пару команд MOV AL,1 и RET, сохраняем изменения, запускаем.

Сообщение о поврежденном файле
Сообщение о поврежденном файле

Такое мы уже видели в прошлых исследованиях. Конкретно такой случай обходится обычной корректировкой CRC в PE-заголовке. Я традиционно корректирую в PEiD с плагином FixCRC.

Корректировка контрольной суммы
Корректировка контрольной суммы

Вновь сохраняем изменения, запускаем. Программа стартует без каких либо ошибок.

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

Тральное окно при старте пропало, надписи с триальным сроком в интерфейсе тоже, в окне "О программе" показывается "типа лицензия", но перевод системной даты на пару месяцев вперед никак на работоспособность не влияет. Цель достигнута.

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

Комментарии

Отзывы посетителей сайта о статье
pawel97 (04.05.2024 в 04:00):
Мой любимый MadExcept. При желании можно добыть имена, и будет как-то так:
https://i.imgur.com/9s8u7Sj.png
Судя по ним, кусок на скрине - какая-то пасхалка, но это неточно

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

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

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