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

Скриншот программы NoteCase Pro
NoteCase Pro - компактный менеджер заметок с древовидной организацией, поддерживающий форматирование текста, вставку изображений, импорт/экспорт в популярные форматы и шифрование данных. Приложение хранит информацию локально в базе данных, что делает его удобным выбором для тех, кто ценит структуру, контроль над данными и независимость от облачных сервисов. Без лицензии NoteCase Pro работает всего месяц - как понимаете, это несерьезно. Так что и я не в игрушки тут играть собираюсь.
Забираем с офсайта дистрибутив последней версии. При установке есть несколько вариантов установки, нас интересует portable. Устанавливаем, смотрим. Исполняемый файл ничем не упакован, отправляем его на дизассемблирование.

Триальное окно
При запуске программы сразу же появляется окно с предложением метнуться в кассу. Сюда еще всегда успеем, а пока поищем какие-нибудь полезные строки. Далеко ходить не пришлось - в окне находится строка "Trial".

Строки в файле
В файле нашлась другая строка, "Trial mode", но она от такой же сказки, так что пусть будет она. Переходим к дизассемблеру, посмотрим, что и куда переходит. Я немного сокращу листинг, оставлю только важные куски.
Code (Assembler) : Убрать нумерацию
- .text:004137FA call gtk_table_attach
- .text:004137FF add esp, 28h
- .text:00413802 mov ecx, offset byte_860398
- ; Функция проверка
- .text:00413807 call sub_6D3300
- ; AL = результат проверки
- .text:0041380C test al, al
- ; Не удалось, переходим к строке "Trial mode"
- .text:0041380E jz loc_413A9B
- ; Все хорошо, лицензия подходит
- .text:00413814 push offset aRegisteredTo
- ; "Registered to: "
- .text:00413819 push offset aNotecase_pro
- ; "notecase_pro"
- .text:0041381E call libintl_dgettext
- .text:00413823 add esp, 8
- .text:00413826 lea ecx, [ebp-0FC8h]
- .text:0041382C push eax
- ...
- ...
- .text:00413A8D call gtk_table_get_type
- .text:00413A92 push eax
- .text:00413A93 push dword ptr [ebp-0FF0h]
- .text:00413A99 jmp short loc_413B0A
- .text:00413A9B ; --------------------------------------------
- .text:00413A9B loc_413A9B:
- .text:00413A9B push offset aTrialMode
- ; "Trial mode"
- .text:00413AA0 push offset aNotecase_pro
- ; "notecase_pro"
- .text:00413AA5 call libintl_dgettext
- .text:00413AAA add esp, 8
- .text:00413AAD lea ecx, [ebp-0FC8h]
Code (Assembler) : Убрать нумерацию
- .text:006D3300 sub_6D3300 proc near
- .text:006D3300 cmp byte ptr [ecx+1011h], 0
- .text:006D3307 jz short loc_6D3315
- .text:006D3309 cmp byte ptr [ecx+1012h], 0
- .text:006D3310 jz short loc_6D3315
- ; AL = 1, проверка успешно выполнена
- .text:006D3312 mov al, 1
- .text:006D3314 retn
- .text:006D3315 ; ----------------------------------------
- .text:006D3315 loc_6D3315:
- ; AL = 0, ошибка, регистрация не выполнена
- .text:006D3315 xor al, al
- .text:006D3317 retn
- .text:006D3317 sub_6D3300 endp

Окно "О программе"
Запускаем программу. Теперь никаких окон и триальных надписей в интерфейсе нет. В разделе "О программе" информация отображается, хоть и немного кривовато: отсутствует название лицензии, разрешенное количество пользователей и срок действия. Перевод системных часов на месяц вперед тоже не влияет на работоспособность. Цель достигнута.
Просмотров: 365 | Комментариев: 4
Метки: исследование защиты
Комментарии
Отзывы посетителей сайта о статье
ManHunter
(06.04.2026 в 21:23):
Да, Sublime Text для души, а на работе PHPStorm, тут корпоративный стиль.
bodrox
(06.04.2026 в 21:14):
А я перешёл на общестандартные md и Obsidian. Легко пересылать другим инструкции и заметки.
Кстати, ты всё так же в Sublime код и тексты пишешь? Ищу адекватную замену Notepad++, а то у его автора что-то с головой стало. Пробовал Scite, но там нет смены кодировок на лету. Нет что-то на примете уровня Notepad++? Поиском пробежался, никому не надо, похоже :).
Кстати, ты всё так же в Sublime код и тексты пишешь? Ищу адекватную замену Notepad++, а то у его автора что-то с головой стало. Пробовал Scite, но там нет смены кодировок на лету. Нет что-то на примете уровня Notepad++? Поиском пробежался, никому не надо, похоже :).
mAv1k
(06.04.2026 в 15:26):
Ловко Вы это, профессор !
Спасибо за урок <3
Спасибо за урок <3
Добавить комментарий
Заполните форму для добавления комментария



Можете посмотреть в сторону Notepad--
Найти можно на github, пользователь — cxasm
Я где-то осенью на него наткнулся, когда тоже искал замену, меня вполне устраивает.