Blog. Just Blog

Исследование защиты игры "Шахматный конь"

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

"Шахматный конь" - классическая головоломка, в которой надо фигурой коня обойти все клетки шахматной доски, причем на каждой клетке можно побывать только один раз. Игрушка требует регистрацию, хотя вроде никаких ограничений в ней нет. Ну ничего, лишний раз разомнем пальцы.

Забираем с файлообменника дистрибутив, распаковываем, смотрим. На попытку ввести левые данные программа реагирует следующим сообщением:

Сообщение о неправильной регистрации
Сообщение о неправильной регистрации

Эту и другие строчки, относящиеся к регистрации, можно легко найти в файле. Он ничем не упакован, отправляем его в дизассемблер.

Строки сообщений в файле
Строки сообщений в файле

По перекрестным ссылкам находим код, где эти строчки используются. Обнаруживается вот такой код. Строчки в русской кодировке, поэтому в листинге они не показываются.
  1. CODE:0045C27B                 mov     eax, [ebp+var_4]
  2. CODE:0045C27E                 call    sub_45C8F0
  3. CODE:0045C283                 mov     edx, [ebp+var_CC]
  4. CODE:0045C289                 pop     eax
  5. ; Вызвать функцию сравнения строк
  6. CODE:0045C28A                 call    sub_403F10
  7. ; Строки не равны, серийный номер неправильный
  8. CODE:0045C28F                 jnz     loc_45C33A
  9. CODE:0045C295                 lea     edx, [ebp+var_D4]
  10. CODE:0045C29B                 mov     eax, ds:dword_4758E4
  11. CODE:0045C2A0                 call    sub_42A458
  12. CODE:0045C2A5                 mov     eax, [ebp+var_D4]
  13. CODE:0045C2AB                 push    eax
  14. CODE:0045C2AC                 push    offset dword_45C550
  15. CODE:0045C2B1                 push    offset aSoftwareVrsoft
  16. ; "SoftWare\\VrSoft"
  17. CODE:0045C2B6                 lea     eax, [ebp+var_D0]
  18. CODE:0045C2BC                 push    eax
  19. CODE:0045C2BD                 mov     eax, [ebp+var_4]
  20. CODE:0045C2C0                 mov     edx, [eax+2Ch]
  21. CODE:0045C2C3                 mov     ecx, offset aUsername ; "username"
  22. CODE:0045C2C8                 mov     eax, [ebp+var_4]
  23. CODE:0045C2CB                 call    sub_45C9DC
  24. CODE:0045C2D0                 lea     edx, [ebp+var_DC]
  25. CODE:0045C2D6                 mov     eax, ds:dword_4758E8
  26. CODE:0045C2DB                 call    sub_42A458
  27. CODE:0045C2E0                 mov     eax, [ebp+var_DC]
  28. CODE:0045C2E6                 push    eax
  29. CODE:0045C2E7                 push    offset dword_45C550
  30. CODE:0045C2EC                 push    offset aSoftwareVrsoft
  31. ; "SoftWare\\VrSoft"
  32. CODE:0045C2F1                 lea     eax, [ebp+var_D8]
  33. CODE:0045C2F7                 push    eax
  34. CODE:0045C2F8                 lea     ecx, [ebp+var_E0]
  35. CODE:0045C2FE                 mov     eax, [ebp+var_4]
  36. CODE:0045C301                 mov     edx, [eax+2Ch]
  37. CODE:0045C304                 mov     eax, [ebp+var_4]
  38. CODE:0045C307                 call    sub_45C8F0
  39. CODE:0045C30C                 mov     ecx, [ebp+var_E0]
  40. CODE:0045C312                 xor     edx, edx
  41. CODE:0045C314                 mov     eax, [ebp+var_4]
  42. CODE:0045C317                 call    sub_45C9DC
  43. CODE:0045C31C                 mov     eax, [ebp+var_4]
  44. CODE:0045C31F                 mov     byte ptr [eax+30h], 1
  45. CODE:0045C323                 push    0
  46. CODE:0045C325                 mov     cx, word_45C7C4
  47. CODE:0045C32C                 mov     dl, 3
  48. CODE:0045C32E                 mov     eax, offset dword_45C7D0
  49. CODE:0045C333                 call    sub_44CD9C
  50. CODE:0045C338                 jmp     short loc_45C34F
  51. CODE:0045C33A ; --------------------------------------------
  52. CODE:0045C33A loc_45C33A:
  53. CODE:0045C33A                 push    0
  54. CODE:0045C33C                 mov     cx, word_45C7C4
  55. CODE:0045C343                 mov     dl, 3
  56. CODE:0045C345                 mov     eax, offset dword_45C80C
  57. CODE:0045C34A                 call    sub_44CD9C
Зато тут видны названия ключей реестра, куда заносится регистрация, а также очень приметная функция сравнения. Отправляем программу в отладчик, ставим точку останова по адресу 0045C28A, отпускаем программу на выполнение и пробуем ее зарегистрировать с именем "ManHunter / PCL" и левым серийником. Когда точка останова сработает, смотрим на регистры.

Строки в регистрах
Строки в регистрах

Сравниваются введенный левый серийник и строка "a7dc4f9f6d82". Отлично, сохраним эту строчку куда-нибудь в сухое прохладное место. Повторяем регистрацию с тем же именем, но уже с новым серийником.

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

Программа сообщает о принятом ключе.

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

Как я уже говорил, особо ничего не изменилось. В окне "О программе" появилось введенное имя и какой-то странный статус лицензии "Adware". Но в сеть программа не ломится, баннеры не крутит, не совсем понятно, что это значит. Цель достигнута, регистрация есть.

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

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

Комментарии

Отзывы посетителей сайта о статье
user (17.05.2021 в 02:29):
) Тю. Выложил же патч.
Комируй по "линии отреза" в текстовый файл *.CRK,
подсовывай его программе CRACKER.EXE, она всё и пропатчит.
Ну, или ручками в HIEW, глядя в текст кряка.
Там же три байта всего

---
---
Поправлено:
Копируй по "линии отреза" ...
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
ManHunter (11.05.2021 в 21:59):
Значит это у меня все заблокировано, вот и не показывает. Ну зато теперь понятно, что это за статус такой.
user (11.05.2021 в 20:14):
Баннеры как раз крутит,
причём вне зависимости от состояния регистрированности.
Борменталь (10.05.2021 в 20:12):
К имени добавляется строка Horse, $F2 хорится с длиной полученой строки, затем последний символ имени хорится с $7B; $93;$D0; $F2; $EF. Кейгенил в детстве, для новичков само-то.

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

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

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