Blog. Just Blog

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

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

Mp3 Audio Editor - простой редактор для музыкальных файлов, но при этом он обладает всеми необходимыми функциями для любительского аудиомонтажа. Mp3 Audio Editor позволяет записывать звук из внешних источников, накладывать на него различные эффекты, а потом записывать готовый результат на CD-диски или выкладывать в интернет. За все это добро аффтар предлагает нам расстаться аж с 40 баксами, тогда как я считаю, что искусство должно принадлежать народу бесплатно.

Скачиваем дистрибутив, устанавливаем, смотрим что у нас получилось. В папке с программой целая куча исполняемых файлов, похоже, что для каждого действия (запись дисков, редактирование файлов) предусмотрена своя утилита. Главный исполняемый файл называется Mp3AudioEditor.exe, он ничем не упакован, так что просто отправляем его в дизассемблер, а сами посмотрим, как проявляются ограничения незарегистрированной версии программы.

Окно регистрации программы
Окно регистрации программы

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

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

Смотрим в дизассемблере, при каких условиях появляется это сообщение. Параллельно запустим программу под отладчиком и отработаем этот же участок кода в пошаговом режиме. Комментарии я сразу же расставил, исходя из результатов отладки:
  1. ...
  2. CODE:00627917                 lea     edx, [ebp+var_10]
  3. CODE:0062791A                 mov     eax, [ebp+var_8]
  4. CODE:0062791D                 call    sub_409B04
  5. CODE:00627922                 mov     eax, [ebp+var_10]
  6. CODE:00627925                 mov     edx, ds:off_6D5ACC
  7. CODE:0062792B                 mov     edx, [edx+8]
  8. ; Сравнить серийник со строкой "MAE-TF477-46YM4-W74MH-6YDQ8"
  9. CODE:0062792E                 call    sub_4051E4
  10. CODE:00627933                 jz      short loc_62799F
  11. CODE:00627935                 lea     edx, [ebp+var_14]
  12. CODE:00627938                 mov     eax, [ebp+var_8]
  13. CODE:0062793B                 call    sub_409B04
  14. CODE:00627940                 mov     eax, [ebp+var_14]
  15. CODE:00627943                 mov     edx, ds:off_6D5ACC
  16. CODE:00627949                 mov     edx, [edx+0Ch]
  17. ; Сравнить серийник со строкой "MAE-TF477-46YM4-W74MH-6YDQ9"
  18. CODE:0062794C                 call    sub_4051E4
  19. CODE:00627951                 jz      short loc_62799F
  20. CODE:00627953                 lea     edx, [ebp+var_18]
  21. CODE:00627956                 mov     eax, [ebp+var_8]
  22. CODE:00627959                 call    sub_409B04
  23. CODE:0062795E                 mov     eax, [ebp+var_18]
  24. CODE:00627961                 mov     edx, ds:off_6D5ACC
  25. CODE:00627967                 mov     edx, [edx+10h]
  26. ; Сравнить серийник со строкой "MAE-TF477-46YM4-W74MH-6YD10"
  27. CODE:0062796A                 call    sub_4051E4
  28. CODE:0062796F                 jz      short loc_62799F
  29. CODE:00627971 loc_627971:
  30. CODE:00627971                 push    30h             ; uType
  31. CODE:00627973                 lea     edx, [ebp+var_1C]
  32. CODE:00627976                 mov     eax, ds:off_6D595C
  33. CODE:0062797B                 mov     eax, [eax]
  34. CODE:0062797D                 call    sub_4742B8
  35. CODE:00627982                 mov     eax, [ebp+var_1C]
  36. CODE:00627985                 call    sub_405298
  37. ; Вывести сообщение о неудачной регистрации
  38. CODE:0062798A                 mov     ecx, eax        ; lpCaption
  39. CODE:0062798C                 mov     edx, offset aTheRegistratio
  40. ; "The registration details you have enter"...
  41. CODE:00627991                 mov     eax, ds:off_6D595C
  42. CODE:00627996                 mov     eax, [eax]
  43. CODE:00627998                 call    sub_474944
  44. CODE:0062799D                 jmp     short loc_6279ED
  45. CODE:0062799F ; -------------------------------------
  46. CODE:0062799F loc_62799F:
  47. ; Вывести сообщение об успешной регистрации
  48. CODE:0062799F                 push    40h             ; uType
  49. CODE:006279A1                 lea     edx, [ebp+var_20]
  50. CODE:006279A4                 mov     eax, ds:off_6D595C
  51. CODE:006279A9                 mov     eax, [eax]
  52. CODE:006279AB                 call    sub_4742B8
  53. CODE:006279B0                 mov     eax, [ebp+var_20]
  54. CODE:006279B3                 call    sub_405298
  55. CODE:006279B8                 mov     ecx, eax        ; lpCaption
  56. CODE:006279BA                 mov     edx, offset aThankYourForSu
  57. ; "Thank your for support."
  58. CODE:006279BF                 mov     eax, ds:off_6D595C
  59. CODE:006279C4                 mov     eax, [eax]
  60. ...
Что мы имеем? Для любого имени в программе может быть только три серийных номера: "MAE-TF477-46YM4-W74MH-6YDQ8", "MAE-TF477-46YM4-W74MH-6YDQ9" или "MAE-TF477-46YM4-W74MH-6YD10". При вводе любого из трех серийников программа благодарит за регистрацию. А если поискать по сигнатурам серийника в листинге дизассемблера, то обнаружатся и еще более интересные вещи, например:
  1. CODE:006ADEDB                 call    sub_404E00
  2. CODE:006ADEE0                 lea     eax, [ebx+8]
  3. CODE:006ADEE3                 mov     edx, offset aFaeTf47746ym4W
  4. ; "FAE-TF477-46YM4-W74MH-6YDQ8"
  5. CODE:006ADEE8                 call    sub_404E00
  6. CODE:006ADEED                 lea     eax, [ebx+0Ch]
  7. CODE:006ADEF0                 mov     edx, offset aFaeTf47746ym_0
  8. ; "FAE-TF477-46YM4-W74MH-6YDQ9"
  9. CODE:006ADEF5                 call    sub_404E00
  10. CODE:006ADEFA                 lea     eax, [ebx+10h]
  11. CODE:006ADEFD                 mov     edx, offset aFaeTf47746ym_1
  12. ; "FAE-TF477-46YM4-W74MH-6YD10"
  13. CODE:006ADF02                 call    sub_404E00
  14. CODE:006ADF07                 lea     eax, [ebx+14h]
  15. CODE:006ADF0A                 mov     edx, offset aHttpWww_freeAu
  16. ; "http://www.free-audio-editor.com/"
  17. CODE:006ADF0F                 call    sub_404E00
чуть дальше:
  1. CODE:006ADFC8                 call    sub_404E00
  2. CODE:006ADFCD                 lea     eax, [ebx+8]
  3. CODE:006ADFD0                 mov     edx, offset aPseTf47746ym4W
  4. ; "PSE-TF477-46YM4-W74MH-6YDQ8"
  5. CODE:006ADFD5                 call    sub_404E00
  6. CODE:006ADFDA                 lea     eax, [ebx+0Ch]
  7. CODE:006ADFDD                 mov     edx, offset aPseTf47746ym_0
  8. ; "PSE-TF477-46YM4-W74MH-6YDQ9"
  9. CODE:006ADFE2                 call    sub_404E00
  10. CODE:006ADFE7                 lea     eax, [ebx+10h]
  11. CODE:006ADFEA                 mov     edx, offset aPseTf47746ym_1
  12. ; "PSE-TF477-46YM4-W74MH-6YD10"
  13. CODE:006ADFEF                 call    sub_404E00
  14. CODE:006ADFF4                 lea     eax, [ebx+14h]
  15. CODE:006ADFF7                 mov     edx, offset aHttpWww_freeSo
  16. ; "http://www.free-sound-editor.com/"
  17. CODE:006ADFFC                 call    sub_404E00
  18. CODE:006AE001                 lea     eax, [ebx+18h]
Что это такое? Если не догадались, то поясню: в программе в открытом виде палятся серийники для программ Free Audio Editor, Power Sound Editor и других (ниже по листингу аналогичные блоки кода). Или это одинаковые продукты одного автора под разными названиями, или сферическая халатность в вакууме. Назвать это защитой не поворачивается язык, но, как видите, такие чудеса иногда встречаются.

Поделиться ссылкой ВКонтакте Поделиться ссылкой на Facebook Поделиться ссылкой на LiveJournal Поделиться ссылкой в Мой Круг Добавить в Мой мир Добавить на ЛиРу (Liveinternet) Добавить в закладки Memori Добавить в закладки Google
Просмотров: 4428 | Комментариев: 7

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

Комментарии

Отзывы посетителей сайта о статье
ManHunter (15.01.2012 в 14:00):
На каждую хитрую жопу найдется свой хер с винтом.
Алексей (15.01.2012 в 03:01):
Да, согласен с автором, так тупо палить ключи. Бывало так, что помогало условный переход на ret по результатам проверки лицензии "выворачивать". Но в серьезных программах прибегают к сохранению через виртуальные адреса переменных, а проверку проводить каким небудь невзрачным subом, вычислить нереально...

Да... еще есть упакованные екзешники.. мой PEexplorer такие не берет, просто серая data и все...
disciple27 (10.01.2012 в 01:12):
"аффтар защиты" молодец, побольше бы таких))) ManHunter, статья супер!Улыбнуло)))
ManHunter (09.01.2012 в 08:14):
Или, как вариант, программу купили аж целых три человека.
AyTkACT (09.01.2012 в 03:24):
>>>> сферическая халатность в вакууме. Назвать это защитой не поворачивается язык, но, как видите, такие чудеса иногда встречаются.

Нет слов. Разработчик, похоже, представитель народов крайнего северо из классических анекдотов.
ManHunter (09.01.2012 в 00:36):
Ну дык, не обязательно же пользоваться, чтобы ломать :)
DuXeN0N (08.01.2012 в 23:47):
А зачем ломать эту прогу если есть отличная бесплатная - Audacity, обладающая очень мощным функционалом. А так статья интересная, как всегда

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

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

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