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


Скриншот программы Mp3 Audio Editor

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

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


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

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


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

Смотрим в дизассемблере, при каких условиях появляется это сообщение. Параллельно запустим программу под отладчиком и отработаем этот же участок кода в пошаговом режиме. Комментарии я сразу же расставил, исходя из результатов отладки:
...
CODE:00627917                 lea     edx, [ebp+var_10]
CODE:0062791A                 mov     eax, [ebp+var_8]
CODE:0062791D                 call    sub_409B04
CODE:00627922                 mov     eax, [ebp+var_10]
CODE:00627925                 mov     edx, ds:off_6D5ACC
CODE:0062792B                 mov     edx, [edx+8]
; Сравнить серийник со строкой "MAE-TF477-46YM4-W74MH-6YDQ8"
CODE:0062792E                 call    sub_4051E4
CODE:00627933                 jz      short loc_62799F
CODE:00627935                 lea     edx, [ebp+var_14]
CODE:00627938                 mov     eax, [ebp+var_8]
CODE:0062793B                 call    sub_409B04
CODE:00627940                 mov     eax, [ebp+var_14]
CODE:00627943                 mov     edx, ds:off_6D5ACC
CODE:00627949                 mov     edx, [edx+0Ch]
; Сравнить серийник со строкой "MAE-TF477-46YM4-W74MH-6YDQ9"
CODE:0062794C                 call    sub_4051E4
CODE:00627951                 jz      short loc_62799F
CODE:00627953                 lea     edx, [ebp+var_18]
CODE:00627956                 mov     eax, [ebp+var_8]
CODE:00627959                 call    sub_409B04
CODE:0062795E                 mov     eax, [ebp+var_18]
CODE:00627961                 mov     edx, ds:off_6D5ACC
CODE:00627967                 mov     edx, [edx+10h]
; Сравнить серийник со строкой "MAE-TF477-46YM4-W74MH-6YD10"
CODE:0062796A                 call    sub_4051E4
CODE:0062796F                 jz      short loc_62799F
CODE:00627971 loc_627971:
CODE:00627971                 push    30h             ; uType
CODE:00627973                 lea     edx, [ebp+var_1C]
CODE:00627976                 mov     eax, ds:off_6D595C
CODE:0062797B                 mov     eax, [eax]
CODE:0062797D                 call    sub_4742B8
CODE:00627982                 mov     eax, [ebp+var_1C]
CODE:00627985                 call    sub_405298
; Вывести сообщение о неудачной регистрации
CODE:0062798A                 mov     ecx, eax        ; lpCaption
CODE:0062798C                 mov     edx, offset aTheRegistratio
; "The registration details you have enter"...
CODE:00627991                 mov     eax, ds:off_6D595C
CODE:00627996                 mov     eax, [eax]
CODE:00627998                 call    sub_474944
CODE:0062799D                 jmp     short loc_6279ED
CODE:0062799F ; -------------------------------------
CODE:0062799F loc_62799F:
; Вывести сообщение об успешной регистрации
CODE:0062799F                 push    40h             ; uType
CODE:006279A1                 lea     edx, [ebp+var_20]
CODE:006279A4                 mov     eax, ds:off_6D595C
CODE:006279A9                 mov     eax, [eax]
CODE:006279AB                 call    sub_4742B8
CODE:006279B0                 mov     eax, [ebp+var_20]
CODE:006279B3                 call    sub_405298
CODE:006279B8                 mov     ecx, eax        ; lpCaption
CODE:006279BA                 mov     edx, offset aThankYourForSu
; "Thank your for support."
CODE:006279BF                 mov     eax, ds:off_6D595C
CODE:006279C4                 mov     eax, [eax]
...

Что мы имеем? Для любого имени в программе может быть только три серийных номера: "MAE-TF477-46YM4-W74MH-6YDQ8", "MAE-TF477-46YM4-W74MH-6YDQ9" или "MAE-TF477-46YM4-W74MH-6YD10". При вводе любого из трех серийников программа благодарит за регистрацию. А если поискать по сигнатурам серийника в листинге дизассемблера, то обнаружатся и еще более интересные вещи, например:
CODE:006ADEDB                 call    sub_404E00
CODE:006ADEE0                 lea     eax, [ebx+8]
CODE:006ADEE3                 mov     edx, offset aFaeTf47746ym4W
; "FAE-TF477-46YM4-W74MH-6YDQ8"
CODE:006ADEE8                 call    sub_404E00
CODE:006ADEED                 lea     eax, [ebx+0Ch]
CODE:006ADEF0                 mov     edx, offset aFaeTf47746ym_0
; "FAE-TF477-46YM4-W74MH-6YDQ9"
CODE:006ADEF5                 call    sub_404E00
CODE:006ADEFA                 lea     eax, [ebx+10h]
CODE:006ADEFD                 mov     edx, offset aFaeTf47746ym_1
; "FAE-TF477-46YM4-W74MH-6YD10"
CODE:006ADF02                 call    sub_404E00
CODE:006ADF07                 lea     eax, [ebx+14h]
CODE:006ADF0A                 mov     edx, offset aHttpWww_freeAu
; "http://www.free-audio-editor.com/"
CODE:006ADF0F                 call    sub_404E00
чуть дальше:
Code (Assembler) : Убрать нумерацию
CODE:006ADFC8                 call    sub_404E00
CODE:006ADFCD                 lea     eax, [ebx+8]
CODE:006ADFD0                 mov     edx, offset aPseTf47746ym4W
; "PSE-TF477-46YM4-W74MH-6YDQ8"
CODE:006ADFD5                 call    sub_404E00
CODE:006ADFDA                 lea     eax, [ebx+0Ch]
CODE:006ADFDD                 mov     edx, offset aPseTf47746ym_0
; "PSE-TF477-46YM4-W74MH-6YDQ9"
CODE:006ADFE2                 call    sub_404E00
CODE:006ADFE7                 lea     eax, [ebx+10h]
CODE:006ADFEA                 mov     edx, offset aPseTf47746ym_1
; "PSE-TF477-46YM4-W74MH-6YD10"
CODE:006ADFEF                 call    sub_404E00
CODE:006ADFF4                 lea     eax, [ebx+14h]
CODE:006ADFF7                 mov     edx, offset aHttpWww_freeSo
; "http://www.free-sound-editor.com/"
CODE:006ADFFC                 call    sub_404E00
CODE:006AE001                 lea     eax, [ebx+18h]
Теги:
защита, взлом
Добавлено: 17 Сентября 2013 04:28:57 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...