Blog. Just Blog

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

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

GemX TexNotes Pro - продвинутый органайзер, календарь, ежедневник, адресная книга, напоминалка, менеджер заметок и еще куча всего полезного в одной программе. Он позволяет упорядочивать и хранить фотографии, документы, статьи, контакты, а также экспортировать это все в виде независимых электронных книг. GemX TexNotes Pro станет верным другом для деловых и творческих людей. А дружба, как известно, должна быть бескорыстной, иначе это не дружба, а барыжничество.

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

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

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

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

Дистрибутив полной версии разработчики предоставляют только после легальной покупки. В подтверждение этому в триальной версии GemX TexNotes Pro отсутствуют какие-либо поля ввода серийного номера, формы регистрации и тому подобное. Но на всякий случай посмотрим, вдруг удастся что-то сделать с триальной версией. Для начала поищем в исполняемом файле главный признак триальности - строку "Trial".

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

К нашему удовольствию строка находится отдельно от названия, значит есть ненулевая вероятность, что она добавляется по какому-то условию. Тем более рядом есть не менее интересная строка "Temp Registration". Посмотрим в дизассемблере где это все используется и при каких условиях появляется.
  1. ...
  2. CODE:009EDC02                 mov     eax, ds:off_A769E0
  3. CODE:009EDC07                 mov     eax, [eax]
  4. CODE:009EDC09                 mov     eax, [eax+380h]
  5. ; Вызвать какую-то функцию проверки
  6. CODE:009EDC0F                 call    sub_6EFB1C
  7. CODE:009EDC14                 test    al, al
  8. ; Если она вернула AL=0, то программа работает в триальном режиме
  9. CODE:009EDC16                 jnz     short loc_9EDC55
  10. CODE:009EDC18                 lea     ecx, [ebp+var_C]
  11. CODE:009EDC1B                 mov     edx, offset aTrial ; "Trial"
  12. CODE:009EDC20                 mov     eax, 2BCh
  13. CODE:009EDC25                 call    sub_A51E94
  14. CODE:009EDC2A                 mov     ecx, [ebp+var_C