Blog. Just Blog

Исследование защиты программы Aya MP3 AMR WAV MMF Mobile Ringtone Maker

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Темная сторона Силы | Автор: ManHunter
Скриншот программы 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 в папке с программой. После этого убеждаемся, что главный исполняемый файл ничем не упакован и отправляем его на разбор в дизассемблер.

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

На попытку ввести левые регистрационные данные программа реагирует следующим сообщением. Просто поищем его текст в листинге дизассемблера. Первым же поиском выходим на следующий код:
  1. .text:004205F1                 call    sub_404560
  2. .text:004205F6                 mov     [esp+3C0h+var_4], 0
  3. .text:00420601                 mov     [esp+3C0h+var_4], 0FFFFFFFFh
  4. ; Вызвать функцию проверки серийника
  5. .text:0042060C                 call    sub_416C20
  6. .text:00420611                 add     esp, 4
  7. ; Если она вернула EAX=1, то вывести сообщение о корректной регистрации
  8. .text:00420614                 cmp     eax, 1
  9. .text:00420617                 push    40h             ; uType
  10. .text:00420619                 mov     ecx, ebp
  11. ; Иначе перейти на вывод сообщения о неправильной регистрации
  12. .text:0042061B                 jnz     short loc_420695
  13. .text:0042061D                 push    offset aCongratulate
  14. ; "Congratulate"
  15. .text:00420622                 push    offset aSucceedToRegis
  16. ; "Succeed to register!\nYou get all featur"...
  17. .text:00420627                 call    sub_4329A2
  18. .text:0042062C                 push    7Fh             ; size_t
  19. .text:0042062E                 lea     ecx, [esp+3C0h+var_3A7]
  20. .text:00420632                 push    0               ; int
  21. .text:00420634                 push    ecx             ; void *
  22. .text:00420635                 mov     [esp+3C8h+var_3A8], 0
  23. .text:0042063A                 call    _memset
  24. .text:0042063F                 push    318h            ; size_t
  25. .text:00420644                 lea     edx, [esp+3CCh+var_328]
  26. .text:0042064B                 push    0               ; int
  27. .text:0042064D                 push    edx             ; void *
  28. .text:0042064E                 call    _memset
  29. .text:00420653                 lea     eax, [esp+3D4h+var_3A8]
  30. .text:00420657                 push    eax
  31. .text:00420658                 call    sub_415680
  32. .text:0042065D                 mov     ecx, [esi]
  33. .text:0042065F                 push    80h             ; size_t
  34. .text:00420664                 push    ecx             ; char *
  35. .text:00420665                 lea     edx, [esp+3E0h+var_A8]
  36. .text:0042066C                 push    edx             ; char *
  37. .text:0042066D                 call    _strncpy
  38. .text:00420672                 sub     esp, 370h
  39. .text:00420678                 mov     ecx, 0E6h
  40. .text:0042067D                 lea     esi, [esp+754h+var_3A8]
  41. .text:00420684                 mov     edi, esp
  42. .text:00420686                 rep movsd
  43. .text:00420688                 call    sub_415DD0
  44. .text:0042068D                 add     esp, 398h
  45. .text:00420693                 jmp     short loc_4206A4
  46. .text:00420695 ; ---------------------------------------
  47. .text:00420695 loc_420695:
  48. .text:00420695                 push    offset aSorry   ; "Sorry"
  49. .text:0042069A                 push    offset aInvalidRegistr
  50. ; "Invalid Registration Code!"
  51. .text:0042069F                 call    sub_4329A2
  52. .text:004206A4 loc_4206A4:
  53. .text:004206A4                 mov     ecx, ebp
  54. .text:004206A6                 call    ?OnOK@CDialog@@MAEXXZ
  55. .text:004206AB                 mov     ecx, [esp+3BCh+var_C]
  56. .text:004206B2                 mov     large fs:0, ecx
Функция проверки по сути таковой не является. Тут просто заносится в регистр EAX значение из ячейки памяти.
  1. .text:004157E0 sub_4157E0      proc near
  2. .text:004157E0                 mov     eax, dword_70CD68
  3. .text:004157E5                 retn
  4. .text:004157E5 sub_4157E0      endp
По перекрестным ссылкам на эту переменную можно выяснить, что в двух местах кода ее значение инициализируется, а только в одном запрашивается.

Перекрестные ссылки на ячейку памяти
Перекрестные ссылки на ячейку памяти

Так что смело заменяем команду по адресу 004157E0 на аналогичную по размеру команду mov eax,1 и сохраняем изменения.

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

Ограничения по количеству обрабатываемых файлов больше нет, в интерфейсе все упоминания о триале тоже исчезли. Цель достигнута, можно создавать рингтоны, которые никому не нужны, для телефонов, которые уже фиг найдешь.

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

Комментарии

Отзывы посетителей сайта о статье
Комментариeв нет

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

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

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