Blog. Just Blog

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

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

Программа Table предназначена для изменения обоев на рабочем столе. Платная. Да, вы не ослышались, для изменения обоев на рабочем столе. Да, платная. К счастью, Вселенная вовремя восстановила свою гармонию, офсайт прекратил свое существование и больше никто не сможет совершить непоправимую ошибку с перечислением денег за вот это.

Забираем с файлообменника дистрибутив самой последней сохранившейся версии, устанавливаем, смотрим. Исполняемый файл ничем не упакован, отправляем его в дизассемблер. На ввод левых регистрационных данных программа реагирует следующим сообщением:

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

Строка сообщения легко обнаруживается в файле. Там же рядышком есть текст собщения и об успешной регистрации.

Строка сообщения
Строка сообщения

Теперь вернемся в дизассемблер и по перекрестным ссылкам на найденные строки посмотрим, при каких условиях появляется то или иное сообщение.
  1. CODE:004FD25C                 lea     edx, [ebp+var_8]
  2. CODE:004FD25F                 mov     eax, [ebx+324h]
  3. CODE:004FD265                 call    @Mask@TCustomMaskEdit@GetText$qqrv
  4. CODE:004FD26A                 push    [ebp+var_8]
  5. CODE:004FD26D                 lea     edx, [ebp+var_C]
  6. CODE:004FD270                 mov     eax, [ebx+328h]
  7. CODE:004FD276                 call    @Mask@TCustomMaskEdit@GetText$qqrv
  8. CODE:004FD27B                 push    [ebp+var_C]
  9. CODE:004FD27E                 lea     edx, [ebp+var_10]
  10. CODE:004FD281                 mov     eax, [ebx+32Ch]
  11. CODE:004FD287                 call    @Mask@TCustomMaskEdit@GetText$qqrv
  12. CODE:004FD28C                 push    [ebp+var_10]
  13. CODE:004FD28F                 lea     edx, [ebp+var_14]
  14. CODE:004FD292                 mov     eax, [ebx+330h]
  15. CODE:004FD298                 call    @Mask@TCustomMaskEdit@GetText$qqrv
  16. CODE:004FD29D                 push    [ebp+var_14]
  17. CODE:004FD2A0                 lea     edx, [ebp+var_18]
  18. CODE:004FD2A3                 mov     eax, [ebx+334h]
  19. CODE:004FD2A9                 call    @Mask@TCustomMaskEdit@GetText$qqrv
  20. CODE:004FD2AE                 push    [ebp+var_18]
  21. CODE:004FD2B1                 lea     eax, [ebp+var_4]
  22. CODE:004FD2B4                 mov     edx, 5
  23. ; Слепить единую строку из всех кусочков серийника
  24. CODE:004FD2B9                 call    @System@@LStrCatN$qqrv
  25. CODE:004FD2BE                 mov     eax, offset _str_UF4AS3P6CMZTU8B.Text
  26. CODE:004FD2C3                 mov     edx, [ebp+var_4]
  27. ; Сравнить полученную строку со строкой "UF4AS3P6CMZTU8BJQ8T2BLMC4"
  28. CODE:004FD2C6                 call    @System@@LStrCmp$qqrv
  29. CODE:004FD2CB                 jnz     loc_4FD444
  30. CODE:004FD2D1                 mov     dl, 1
  31. CODE:004FD2D3                 mov     eax, off_434074
  32. ; Вывести сообщение об успешной регистрации
  33. ...
  34. ...
  35. CODE:004FD444 loc_4FD444:
  36. ; Сравнить полученную строку со строкой "1111122222333334444455555"
  37. CODE:004FD444                 mov     eax, offset a11111222223333
  38. ; "1111122222333334444455555"
  39. CODE:004FD449                 mov     edx, [ebp+var_4]
  40. CODE:004FD44C                 call    @System@@LStrCmp$qqrv
  41. CODE:004FD451                 jnz     loc_4FD5CA
  42. CODE:004FD457                 mov     dl, 1
  43. CODE:004FD459                 mov     eax, off_434074
  44. ; Вывести сообщение об успешной регистрации
  45. ...
  46. ...
  47. ; На всякий случай еще разок сравнить серийник с каждой из строк
  48. CODE:004FD5CA loc_4FD5CA:
  49. CODE:004FD5CA                 mov     eax, offset _str_UF4AS3P6CMZTU8B.Text
  50. CODE:004FD5CF                 mov     edx, [ebp+var_4]
  51. CODE:004FD5D2                 call    @System@@LStrCmp$qqrv
  52. CODE:004FD5D7                 jz      short loc_4FD63C
  53. CODE:004FD5D9                 mov     eax, offset a11111222223333
  54. ; "1111122222333334444455555"
  55. CODE:004FD5DE                 mov     edx, [ebp+var_4]
  56. CODE:004FD5E1                 call    @System@@LStrCmp$qqrv
  57. CODE:004FD5E6                 jz      short loc_4FD63C
  58. ; Нет, серийник точно-точно не совпадает ни с одной из них
  59. CODE:004FD5E8                 push    10h             ; uType
  60. CODE:004FD5EA                 push    offset asc_4FD7B4 ; "+"
  61. CODE:004FD5EF                 push    offset aXtx     ; "=хтх"
  62. CODE:004FD5F4                 push    0               ; hWnd
  63. ; Вывести сообщение о неправильной регистрации
  64. CODE:004FD5F6                 call    MessageBoxA_0
  65. CODE:004FD5FB                 xor     edx, edx
  66. CODE:004FD5FD                 mov     eax, [ebx+324h]
Вот такой код. Выполняются два сравнения серийника с фиксированными строками "UF4AS3P6CMZTU8BJQ8T2BLMC4" и "1111122222333334444455555", после чего серийник еще раз сравнивается с ними же, и уже только после этого выводится сообщение о неправильной регистрации. На всякий случай убедимся в этом, запустив программу под отладчиком и повторив процесс регистрации.

Сравнение строк
Сравнение строк

Сравнение строк
Сравнение строк

Все так и есть, две проверки, потом еще две проверки. Таким образом, для этой программы в природе существует всего два валидных серийника: "UF4AS-3P6CM-ZTU8B-JQ8T2-BLMC4" и "11111-22222-33333-44444-55555". Первый на продажу, так как выглядит солидно, а второй для домашнего использования, чтобы не запоминать первый.

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

На ввод любого из них программа благодарит за регистрацию, никаких следов триальности больше не остается. Цель достигнута, программу и дистрибутив можно удалять.

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

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

Комментарии

Отзывы посетителей сайта о статье
user (20.09.2023 в 13:20):
Ну, ребёнок какой-то делал, потренироваться.
Не работает как следует опция "замостить"
Программа в результате довольно бесполезная
ManHunter (10.06.2023 в 19:45):
Не поверишь :) Это у них даже называется что-то типа "кастомизация"
NobootRecord (10.06.2023 в 14:51):
С нетерпением жду, когда компьютерные мастера, на чьи объявления я время от времени натыкаюсь в своём районе, начнут за деньги не только переустанавливать Windows, но ещё и обои менять на рабочем столе - прям как эта программа. Нашли на чём бабла срубить! Мир Shareware-софта не перестаёт удивлять :)

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

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

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