Исследование защиты программы Aya MP3 AMR WAV MMF Mobile Ringtone Maker
Скриншот программы Aya MP3 AMR WAV MMF Mobile Ringtone Maker
Для работы с рингтонами потребовалась программа, которая может их создавать. За давностью времени количество такого софта поубавилось, но на архивных сайтах удалось найти Aya MP3 AMR WAV MMF Mobile Ringtone Maker. Простенькая программа, но со своими задачами справляется. Офсайт давно прекратил существование, поэтому приобрести ее законным образом невозможно даже при наличии желания.
Забираем дистрибутив с файлообменника, устанавливаем, смотрим. Первым делом излечиваем программу от "детской болезни" - избавляемся от ублюдочных скинов, для этого достаточно удалить или переименовать файл SkinMagic.dll в папке с программой. После этого убеждаемся, что главный исполняемый файл ничем не упакован и отправляем его на разбор в дизассемблер.
Сообщение о неправильной регистрации
На попытку ввести левые регистрационные данные программа реагирует следующим сообщением. Просто поищем его текст в листинге дизассемблера. Первым же поиском выходим на следующий код:
Code (Assembler) : Убрать нумерацию
- .text:004205F1 call sub_404560
- .text:004205F6 mov [esp+3C0h+var_4], 0
- .text:00420601 mov [esp+3C0h+var_4], 0FFFFFFFFh
- ; Вызвать функцию проверки серийника
- .text:0042060C call sub_416C20
- .text:00420611 add esp, 4
- ; Если она вернула EAX=1, то вывести сообщение о корректной регистрации
- .text:00420614 cmp eax, 1
- .text:00420617 push 40h ; uType
- .text:00420619 mov ecx, ebp
- ; Иначе перейти на вывод сообщения о неправильной регистрации
- .text:0042061B jnz short loc_420695
- .text:0042061D push offset aCongratulate
- ; "Congratulate"
- .text:00420622 push offset aSucceedToRegis
- ; "Succeed to register!\nYou get all featur"...
- .text:00420627 call sub_4329A2
- .text:0042062C push 7Fh ; size_t
- .text:0042062E lea ecx, [esp+3C0h+var_3A7]
- .text:00420632 push 0 ; int
- .text:00420634 push ecx ; void *
- .text:00420635 mov [esp+3C8h+var_3A8], 0
- .text:0042063A call _memset
- .text:0042063F push 318h ; size_t
- .text:00420644 lea edx, [esp+3CCh+var_328]
- .text:0042064B push 0 ; int
- .text:0042064D push edx ; void *
- .text:0042064E call _memset
- .text:00420653 lea eax, [esp+3D4h+var_3A8]
- .text:00420657 push eax
- .text:00420658 call sub_415680
- .text:0042065D mov ecx, [esi]
- .text:0042065F push 80h ; size_t
- .text:00420664 push ecx ; char *
- .text:00420665 lea edx, [esp+3E0h+var_A8]
- .text:0042066C push edx ; char *
- .text:0042066D call _strncpy
- .text:00420672 sub esp, 370h
- .text:00420678 mov ecx, 0E6h
- .text:0042067D lea esi, [esp+754h+var_3A8]
- .text:00420684 mov edi, esp
- .text:00420686 rep movsd
- .text:00420688 call sub_415DD0
- .text:0042068D add esp, 398h
- .text:00420693 jmp short loc_4206A4
- .text:00420695 ; ---------------------------------------
- .text:00420695 loc_420695:
- .text:00420695 push offset aSorry ; "Sorry"
- .text:0042069A push offset aInvalidRegistr
- ; "Invalid Registration Code!"
- .text:0042069F call sub_4329A2
- .text:004206A4 loc_4206A4:
- .text:004206A4 mov ecx, ebp
- .text:004206A6 call ?OnOK@CDialog@@MAEXXZ
- .text:004206AB mov ecx, [esp+3BCh+var_C]
- .text:004206B2 mov large fs:0, ecx
Code (Assembler) : Убрать нумерацию
- .text:004157E0 sub_4157E0 proc near
- .text:004157E0 mov eax, dword_70CD68
- .text:004157E5 retn
- .text:004157E5 sub_4157E0 endp
Перекрестные ссылки на ячейку памяти
Так что смело заменяем команду по адресу 004157E0 на аналогичную по размеру команду mov eax,1 и сохраняем изменения.
Программа успешно "зарегистрирована"
Ограничения по количеству обрабатываемых файлов больше нет, в интерфейсе все упоминания о триале тоже исчезли. Цель достигнута, можно создавать рингтоны, которые никому не нужны, для телефонов, которые уже фиг найдешь.
Просмотров: 325 | Комментариев: 0
Метки: исследование защиты, мультимедиа
Комментарии
Отзывы посетителей сайта о статье
Комментариeв нет
Добавить комментарий
Заполните форму для добавления комментария