Исследование защиты программы True Paste
Скриншот программы True Paste
True Paste - очень удобный инструмент для хранения и быстрой вставки часто используемых шаблонных фрагментов текстов и другой информации. Все тексты группируются по тегам, что значительно облегчает поиск. При необходимости данные можно зашифровать. Действительно полезная программа, но двадцатка баксов тоже на дороге не валяется. Попробуем обойтись без денежных трат.
Забираем с сайта дистрибутив, устанавливаем, запускаем. Исполняемый файл ничем не упакован, вы уже должны догадаться, что с ним надо сделать. Правильно, отправить на дизассемблирование. Файл совсем небольшой, процесс разбора завершится буквально за несколько секунд. Теперь давайте запустим программу и посмотрим, как она себя ведет в незарегистрированном состоянии. Во-первых, это ограничение на 15 фрагментов текста, которые можно сохранить, об этом нам сообщает надпись в меню инструментов. Во-вторых, на ввод неправильных регистрационных данных программа реагирует следующим сообщением:
Сообщение о неправильной регистрации
Давайте поищем в файле текст этого сообщения. Найдется юникодная строка:
Строка сообщения в файле
Идем в дизассемблер. Посмотрим внимательно на код, где используется эта строка, а также определим условия ее появления.
Code (Assembler) : Убрать нумерацию
- .text:00413048 lea edx, [esp+6D4h+psz]
- .text:0041304F lea ecx, [esp+6D4h+WideCharStr]
- ; Вызвать функцию проверки
- .text:00413056 call sub_4162F0
- ; Если она вернула значение больше -1, то регистрация прошла успешно
- .text:0041305B cmp eax, 0FFFFFFFFh
- .text:0041305E jg short loc_413085
- .text:00413060 loc_413060:
- .text:00413060 mov ecx, [edi+8]
- .text:00413063 push 10h
- .text:00413065 push offset aTruePaste ; "True Paste"
- .text:0041306A push 0 ; LPCWSTR
- .text:0041306C push offset aAppname ; "appname"
- .text:00413071 call sub_424E20
- .text:00413076 push eax
- .text:00413077 push offset aSorryTheLicens
- ; "Sorry, the license key is incorrect. Pl"...
- .text:0041307C push 0
- .text:0041307E push offset aXui_str_licerr
- ; "XUI_STR_LICERROR"
- .text:00413083 jmp short loc_4130E1
- .text:00413085 ; -----------------------------------
- .text:00413085 loc_413085:
- .text:00413085 lea edx, [esp+6D4h+psz] ; psz
- .text:0041308C lea ecx, [esp+6D4h+WideCharStr] ; psz
- .text:00413093 call sub_416260
- .text:00413098 mov ecx, [edi+8]
- .text:0041309B test eax, eax
- .text:0041309D jz short loc_4130C1
- .text:0041309F push 40h
- .text:004130A1 push offset aTruePaste ; "True Paste"
- .text:004130A6 push 0 ; LPCWSTR
- .text:004130A8 push offset aAppname ; "appname"
- .text:004130AD call sub_424E20
- .text:004130B2 push eax
- .text:004130B3 push offset aTheLicenseKe_0
- ; "The license key is accepted and saved.\"...
- .text:004130B8 push 0
- .text:004130BA push offset aXui_str_licacc
- ; "XUI_STR_LICACCEPTED"
- .text:004130BF jmp short loc_4130E1
Программа успешно "зарегистрирована"
Теперь при попытке регистрации программа принимает любой серийный номер и любое регистрационное имя. В окне "О программе" отображается персональная лицензия. А что если прописать не MOV EAX,0, а MOV EAX,1 или 2 или даже 3? В зависимости от значения будет меняться лицензия, максимальной корпоративной лицензии соответствует значение 3. Вот его и оставим.
Программа успешно "зарегистрирована"
Проверяем функционал, никаких ограничений на количество хранимых фрагментов больше нет. Цель достигнута. Спасибо автору за то, что не делал никаких лишних наворотов, и все удалось решить так просто. Повторюсь, программа действительно очень хорошая, так что если у вас есть возможность, то поддержите разработчика материально.
Просмотров: 2298 | Комментариев: 8
Метки: исследование защиты
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
user
(25.02.2019 в 19:33):
На XP не ботает версия x64 если не сложно дайте ссыль на x32
ManHunter
(30.01.2019 в 10:51):
Мдя.. Хотя казалось бы, что там такого ракетно-космического, что не взлетело бы на WinXP.
user
(29.01.2019 в 18:06):
Нет. Там импортируются новые библиотеки.
.. походу дела, эта софтина изначально делалась в 2013-м году
каким-то , который и не знает, как надо.
Нашёл вот только что версию 1.0 - тоже заявлена как "для Windows 7".
.. походу дела, эта софтина изначально делалась в 2013-м году
каким-то , который и не знает, как надо.
Нашёл вот только что версию 1.0 - тоже заявлена как "для Windows 7".
ManHunter
(29.01.2019 в 17:53):
Патч в заголовке PE не помогает?
user
(29.01.2019 в 17:52):
И ещё что мне очень не понравилось
- что программа скомпилирована для OS/SUBSYS = 6/6.
То есть Vista+.
Ложится в архив короче, мёртвым грузом
- что программа скомпилирована для OS/SUBSYS = 6/6.
То есть Vista+.
Ложится в архив короче, мёртвым грузом
user
(28.01.2019 в 20:37):
Кхм..
Статья будет неполной, если не упомянуть,
что под 64-битной Виндой автоматически инсталлируется и 64-битная же версия программы,
которая, по аналогии с описанной методикой, патчится следующим образом:
;----------------file truePaste_x64.CRK
TruePaste 2.1 (x64)
Set registered
truepaste.exe
00017241: 89 31
00017242: 74 C0
00017243: 24 B0
00017244: 20 03
00017245: 57 C3
;-----------------end of CRK-file
;;.. блин, так руки и не дошли научить крякер работать с х64 PE-EXE ..
Статья будет неполной, если не упомянуть,
что под 64-битной Виндой автоматически инсталлируется и 64-битная же версия программы,
которая, по аналогии с описанной методикой, патчится следующим образом:
;----------------file truePaste_x64.CRK
TruePaste 2.1 (x64)
Set registered
truepaste.exe
00017241: 89 31
00017242: 74 C0
00017243: 24 B0
00017244: 20 03
00017245: 57 C3
;-----------------end of CRK-file
;;.. блин, так руки и не дошли научить крякер работать с х64 PE-EXE ..
ManHunter
(25.01.2019 в 08:57):
brute, это именно так и работает. А регистрация чисто для галочки.
brute
(25.01.2019 в 08:01):
имхо, лучше патчить так, чтобы программа на любом компе чувствовала себя лицензионной без дополнительной регистрации на каждой машине.
Добавить комментарий
Заполните форму для добавления комментария