Исследование защиты игры "Шахматный конь"
Скриншот игры "Шахматный конь"
"Шахматный конь" - классическая головоломка, в которой надо фигурой коня обойти все клетки шахматной доски, причем на каждой клетке можно побывать только один раз. Игрушка требует регистрацию, хотя вроде никаких ограничений в ней нет. Ну ничего, лишний раз разомнем пальцы.
Забираем с файлообменника дистрибутив, распаковываем, смотрим. На попытку ввести левые данные программа реагирует следующим сообщением:
Сообщение о неправильной регистрации
Эту и другие строчки, относящиеся к регистрации, можно легко найти в файле. Он ничем не упакован, отправляем его в дизассемблер.
Строки сообщений в файле
По перекрестным ссылкам находим код, где эти строчки используются. Обнаруживается вот такой код. Строчки в русской кодировке, поэтому в листинге они не показываются.
Code (Assembler) : Убрать нумерацию
- CODE:0045C27B mov eax, [ebp+var_4]
- CODE:0045C27E call sub_45C8F0
- CODE:0045C283 mov edx, [ebp+var_CC]
- CODE:0045C289 pop eax
- ; Вызвать функцию сравнения строк
- CODE:0045C28A call sub_403F10
- ; Строки не равны, серийный номер неправильный
- CODE:0045C28F jnz loc_45C33A
- CODE:0045C295 lea edx, [ebp+var_D4]
- CODE:0045C29B mov eax, ds:dword_4758E4
- CODE:0045C2A0 call sub_42A458
- CODE:0045C2A5 mov eax, [ebp+var_D4]
- CODE:0045C2AB push eax
- CODE:0045C2AC push offset dword_45C550
- CODE:0045C2B1 push offset aSoftwareVrsoft
- ; "SoftWare\\VrSoft"
- CODE:0045C2B6 lea eax, [ebp+var_D0]
- CODE:0045C2BC push eax
- CODE:0045C2BD mov eax, [ebp+var_4]
- CODE:0045C2C0 mov edx, [eax+2Ch]
- CODE:0045C2C3 mov ecx, offset aUsername ; "username"
- CODE:0045C2C8 mov eax, [ebp+var_4]
- CODE:0045C2CB call sub_45C9DC
- CODE:0045C2D0 lea edx, [ebp+var_DC]
- CODE:0045C2D6 mov eax, ds:dword_4758E8
- CODE:0045C2DB call sub_42A458
- CODE:0045C2E0 mov eax, [ebp+var_DC]
- CODE:0045C2E6 push eax
- CODE:0045C2E7 push offset dword_45C550
- CODE:0045C2EC push offset aSoftwareVrsoft
- ; "SoftWare\\VrSoft"
- CODE:0045C2F1 lea eax, [ebp+var_D8]
- CODE:0045C2F7 push eax
- CODE:0045C2F8 lea ecx, [ebp+var_E0]
- CODE:0045C2FE mov eax, [ebp+var_4]
- CODE:0045C301 mov edx, [eax+2Ch]
- CODE:0045C304 mov eax, [ebp+var_4]
- CODE:0045C307 call sub_45C8F0
- CODE:0045C30C mov ecx, [ebp+var_E0]
- CODE:0045C312 xor edx, edx
- CODE:0045C314 mov eax, [ebp+var_4]
- CODE:0045C317 call sub_45C9DC
- CODE:0045C31C mov eax, [ebp+var_4]
- CODE:0045C31F mov byte ptr [eax+30h], 1
- CODE:0045C323 push 0
- CODE:0045C325 mov cx, word_45C7C4
- CODE:0045C32C mov dl, 3
- CODE:0045C32E mov eax, offset dword_45C7D0
- CODE:0045C333 call sub_44CD9C
- CODE:0045C338 jmp short loc_45C34F
- CODE:0045C33A ; --------------------------------------------
- CODE:0045C33A loc_45C33A:
- CODE:0045C33A push 0
- CODE:0045C33C mov cx, word_45C7C4
- CODE:0045C343 mov dl, 3
- CODE:0045C345 mov eax, offset dword_45C80C
- CODE:0045C34A call sub_44CD9C
Строки в регистрах
Сравниваются введенный левый серийник и строка "a7dc4f9f6d82". Отлично, сохраним эту строчку куда-нибудь в сухое прохладное место. Повторяем регистрацию с тем же именем, но уже с новым серийником.
Программа успешно зарегистрирована
Программа сообщает о принятом ключе.
Программа успешно зарегистрирована
Как я уже говорил, особо ничего не изменилось. В окне "О программе" появилось введенное имя и какой-то странный статус лицензии "Adware". Но в сеть программа не ломится, баннеры не крутит, не совсем понятно, что это значит. Цель достигнута, регистрация есть.
Просмотров: 1102 | Комментариев: 7
Метки: исследование защиты, игры
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
ManHunter
(15.05.2021 в 15:18):
Прикалываешься что ли? Алгоритм расписан, адреса для патча указаны, даже готовый серийник сделан. Здесь не бюро добрых услуг, варез тут не раздают.
VR Soft
(15.05.2021 в 14:53):
Привет Всем. Борменталь и user поделитесь пожалуйста, кейгеном и патчем к программе.
user
(12.05.2021 в 09:13):
В общем, лучше пропатчить её и не заморачиваться:
;------------------------------>8
Horse 1.0.0.0
Skip unreg. time limit
Horse.exe
.0045B8A2: 75 EB ;0005ACA2:
Skip terms of use
Horse.exe
.0045B744: 75 EB ;0005AB44:
Skip banner
Horse.exe
.00472102: 75 EB ;00071502:
;----------------------------------->8
;------------------------------>8
Horse 1.0.0.0
Skip unreg. time limit
Horse.exe
.0045B8A2: 75 EB ;0005ACA2:
Skip terms of use
Horse.exe
.0045B744: 75 EB ;0005AB44:
Skip banner
Horse.exe
.00472102: 75 EB ;00071502:
;----------------------------------->8
ManHunter
(11.05.2021 в 21:59):
Значит это у меня все заблокировано, вот и не показывает. Ну зато теперь понятно, что это за статус такой.
user
(11.05.2021 в 20:14):
Баннеры как раз крутит,
причём вне зависимости от состояния регистрированности.
причём вне зависимости от состояния регистрированности.
Борменталь
(10.05.2021 в 20:12):
К имени добавляется строка Horse, $F2 хорится с длиной полученой строки, затем последний символ имени хорится с $7B; $93;$D0; $F2; $EF. Кейгенил в детстве, для новичков само-то.
Добавить комментарий
Заполните форму для добавления комментария
Комируй по "линии отреза" в текстовый файл *.CRK,
подсовывай его программе CRACKER.EXE, она всё и пропатчит.
Ну, или ручками в HIEW, глядя в текст кряка.
Там же три байта всего
---
---
Поправлено:
Копируй по "линии отреза" ...