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]
  15. CODE:009EDC2D                 lea     eax, [ebp+var_8]
  16. CODE:009EDC30                 mov     edx, offset aTexnotesPro4_3
  17. ; "TexNotes Pro 4.3 "
  18. CODE:009EDC35                 call    sub_404FF8
  19. CODE:009EDC3A                 mov     edx, [ebp+var_8]
  20. CODE:009EDC3D                 lea     eax, [ebp+var_4]
  21. CODE:009EDC40                 call    sub_405670
  22. CODE:009EDC45                 mov     edx, [ebp+var_4]
  23. CODE:009EDC48                 mov     eax, [ebx+324h]
  24. CODE:009EDC4E                 call    sub_528ABC
  25. CODE:009EDC53                 jmp     short loc_9EDC90
  26. CODE:009EDC55 ; ------------------------------------------
  27. CODE:009EDC55 loc_9EDC55:
  28. CODE:009EDC55                 lea     ecx, [ebp+var_18]
  29. CODE:009EDC58                 mov     edx, offset aTempRegistrati
  30. ; "Temp Registration"
  31. CODE:009EDC5D                 mov     eax, 2BDh
  32. CODE:009EDC62                 call    sub_A51E94
  33. CODE:009EDC67                 mov     ecx, [ebp+var_18]
  34. CODE:009EDC6A                 lea     eax, [ebp+var_14]
  35. CODE:009EDC6D                 mov     edx, offset aTexnotesPro4_3
  36. ; "TexNotes Pro 4.3 "
  37. CODE:009EDC72                 call    sub_404FF8
  38. CODE:009EDC77                 mov     edx, [ebp+var_14]
  39. CODE:009EDC7A                 lea     eax, [ebp+var_10]
  40. CODE:009EDC7D                 call    sub_405670
Все просто и наглядно. Вызывается функция по адресу 006EFB1C, если она вернула в регистре AL что-то отличное от нулевого значения, то программа считается "временно зарегистрированной" (дословный перевод строки "Temp Registration"), если AL=0, то программа переводится в триальный режим. Ну а раз отсутствует функция регистрации, то кейгенить тут изначально нечего, значит воспользуемся старым добрым патчем. Записываем пару команд MOV AL,1 и RET по адресу 006EFB1C, сохраним изменения и посмотрим что получилось.

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

Триальное сообщение при запуске программы пропало, так же как и пункт меню о покупке, а в окне "About" триальная версия сменилась на зарегистрированную, пусть и временно. Все равно это "временное" в результате патча будет "постоянным". Для очистки совести можно поиграться с системным временем, например, переведя его на год вперед. Программа продолжает работать без каких-либо ограничений. Вот так вы совершенно бескорыстно обрели верного друга в лице этого органайзера :) Похожим способом обходится защита и некоторых других программ от GemX.

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

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

Комментарии

Отзывы посетителей сайта о статье
Инженер (12.06.2013 в 13:59):
Приветствую!
Благодарю за статью. Познавательно.

Вы не пробовали исследовать GemX Harmony? :)
Kirill (11.10.2012 в 15:24):
ManHunter, может и Harmony поковыряете? :)
ManHunter (11.10.2012 в 15:14):
Да, действительно, не все подходят под эту схему регистрации. Поправил статью, спасибо!
Раньше у них была еще игрушка Судоку, там была точно такая защита.
Kirill (11.10.2012 в 14:56):
то же Gemx

цитата
Похожим способом обходится защита и других программ от GemX.
ManHunter (11.10.2012 в 14:53):
А какое отношение Harmony имеет к этой статье?
Kirill (11.10.2012 в 14:51):
а Harmony под Olly удалось запустить?
ManHunter (02.10.2012 в 16:58):
В Olly Ctrl+G в окне дампа, вводишь VA адрес и переходишь на строку.
Жека (02.10.2012 в 16:56):
Как найти строку найденную в хексе в отладчике?
ManHunter (25.09.2012 в 17:29):
Это ТОЖЕ органайзер, остальное - дело вкуса :) У меня пока нет нужды пользоваться ими, но по функционалу GemX явно побогаче.
Never (25.09.2012 в 17:23):
Лучше c-organizer?
ManHunter (25.09.2012 в 00:00):
Musika, это не так просто, как кажется.
Musika (24.09.2012 в 15:36):
Приветствую,

импонирует Ваше чувство юмора.
Хотелось бы прочесть, пусть и небольшую статью,
о Вашем отношении к защите программ, где бы Вы
использовали оное в полной мере.

Спасибо.

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

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

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