Исследование защиты программы Video Rotator
Скриншот программы Video Rotator
Назначение программы Video Rotator, как несложно догадаться по названию и скриншоту, - поворот видео и зеркальное отражение по вертикали и горизонтали. В век мобильных устройств и вертикального видео очень актуально. Не обошла аффтаров и типичная болезнь современных программ - шароварность. Что ж, мы не гордые, подлечим.
Начинаем с дистрибутива. Скачиваем, устанавливаем, все как обычно. Размер инсталлятора великоват, потом посмотрим, с чем это связано. А пока запустим программу и выясним, как она будет реагировать на неправильную регистрацию.
Сообщение о неправильной регистрации
Посмотрим на исполняемый файл. Он написан на визуальном басице (Visual Basic, кто не понял) и ничем не упакован. В свое время я считал визуальный басиц абсолютным злом для ковыряния, но это ровно до появления дотнета :) Но сейчас речь не об этом. Загоняем файл в дизассемблер и смотрим, где появляется строка сообщения о неправильной регистрации:
Code (Assembler) : Убрать нумерацию
- .text:004926A4 test eax, eax
- .text:004926A6 jz loc_492759
- .text:004926AC mov [ebp+var_4], 0Bh
- .text:004926B3 mov [ebp+var_80], 80020004h
- .text:004926BA mov [ebp+var_88], 0Ah
- .text:004926C4 mov [ebp+var_70], 80020004h
- .text:004926CB mov [ebp+var_78], 0Ah
- .text:004926D2 mov [ebp+var_D0], offset aInvaild
- ; "Invaild"
- .text:004926DC mov [ebp+var_D8], 8
- .text:004926E6 lea edx, [ebp+var_D8]
- .text:004926EC lea ecx, [ebp+var_68]
- .text:004926EF call __vbaVarDup
- .text:004926F4 mov [ebp+var_C0], offset aInvalidCode_
- ; "Invalid Code."
- .text:004926FE mov [ebp+var_C8], 8
- .text:00492708 lea edx, [ebp+var_C8]
- .text:0049270E lea ecx, [ebp+var_58]
- .text:00492711 call __vbaVarDup
Code (Assembler) : Убрать нумерацию
- .text:00492549 lea eax, [ebp+var_58]
- .text:0049254C push eax
- .text:0049254D lea eax, [ebp+var_68]
- .text:00492550 push eax
- .text:00492551 call rtcTrimVar
- .text:00492556 mov [ebp+var_C0], offset aVr8374d12cb
- ; Сравнение со строкой "VR8374D12CB"
- .text:00492560 mov [ebp+var_C8], 8008h
- .text:0049256A mov eax, [ebp+arg_0]
- .text:0049256D mov eax, [eax]
- .text:0049256F push [ebp+arg_0]
- .text:00492572 call dword ptr [eax+308h]
- .text:00492578 push eax
Code (Assembler) : Убрать нумерацию
- .text:004925F1 mov [ebp+var_88], 8
- .text:004925FB lea eax, [ebp+var_88]
- .text:00492601 push eax
- .text:00492602 lea eax, [ebp+var_98]
- .text:00492608 push eax
- .text:00492609 call rtcTrimVar
- .text:0049260E mov [ebp+var_D0], offset aVrsa277c5wd
- ; Сравнение со строкой "VRSA277C5WD"
- .text:00492618 mov [ebp+var_D8], 8008h
- .text:00492622 lea eax, [ebp+var_68]
- .text:00492625 push eax
- .text:00492626 lea eax, [ebp+var_C8]
- .text:0049262C push eax
- .text:0049262D lea eax, [ebp+var_78]
- .text:00492630 push eax
- .text:00492631 call __vbaVarCmpEq
- .text:00492636 push eax
Code (Assembler) : Убрать нумерацию
- .text:004927EE lea eax, [ebp+var_58]
- .text:004927F1 push eax
- .text:004927F2 lea eax, [ebp+var_68]
- .text:004927F5 push eax
- .text:004927F6 call rtcTrimVar
- .text:004927FB mov [ebp+var_C0], offset aVr1i3d4chip
- ; Сравнение со строкой "VR1I3D4CHIP"
- .text:00492805 mov [ebp+var_C8], 8008h
- .text:0049280F lea eax, [ebp+var_68]
- .text:00492812 push eax
- .text:00492813 lea eax, [ebp+var_C8]
- .text:00492819 push eax
- .text:0049281A call __vbaVarTstEq
- ...
- ...
- ...
- .text:0049286E mov [ebp+var_78], 0Ah
- .text:00492875 mov [ebp+var_D0], offset aExpired
- ; "Expired"
- .text:0049287F mov [ebp+var_D8], 8
- .text:00492889 lea edx, [ebp+var_D8]
- .text:0049288F lea ecx, [ebp+var_68]
- .text:00492892 call __vbaVarDup
- .text:00492897 mov [ebp+var_C0], offset aTheSpecialVers
- ; "The Special Version Expired. Please buy"...
- .text:004928A1 mov [ebp+var_C8], 8
Серийники в файле
Но что это? В "черном списке" три серийника, а тут их явно больше. Не участвуют в проверках на наличие в "черном списке" следующие серийники: "VR7341658WD", "VRSAGK852WD", "VRSAP0461WD", "VRSA99F20WD" и "VRSA099T3WD". Попробуем воспользоваться одним из них, чтобы посмотреть на реакцию программы.
Программа успешно зарегистрирована
Вот такие пироги с котятами. Небольшой список правильных серийных номеров хранится в открытом виде в самой программе. Да, такое тоже до сих пор встречается. Регистрация хранится в файле %APPDATA%\vsound.dll.
Возвращаясь к вопросу, почему инсталлятор имеет такой размер. Если заглянуть в папку \data, то там обнаружится файл "conv.exe", который, в свою очередь, является ни чем иным, как бесплатным медиаконвертером FFmpeg. То есть программа Video Rotator является платной оболочкой для запуска бесплатной программы, которая и делает всю основную работу. Естественно, никаких упоминаний о FFmpeg ни на сайте, ни в программе нет.
Просмотров: 2180 | Комментариев: 5
Метки: исследование защиты, мультимедиа
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
ManHunter
(12.08.2017 в 16:30):
Korvet, не нравится как я пишу - найди сайты где распаковывают VMP и пишут об этом статьи, иди туда и читай. В чем проблема? Уже начинают напрягать подобные комментарии. Если не хватает сил не ходить сюда, то могу помочь, бан тут выдается очень быстро.
Korvet
(12.08.2017 в 13:29):
Как не зайду в эту рубрику всегда расматриваются лёгкие случаи защиты. Ни разу не встречалась статейка с распаковой ВМпротектора например. Взламывая ниочёмные защиты, автор выставляет себя каратистом с чёрным поясом, который колотит женщин и детей.
user
(12.08.2017 в 07:46):
Большая часть пипла именно от этого и получает удовольствие.
У них захватывает дух от таких "наворотов".
Закон Мерфи:
-- Любая сущность стремится в своём развитии к усложнённости.
-- Достигнув максимальной усложнённости, сущность погибает.
Как-то так.
У них захватывает дух от таких "наворотов".
Закон Мерфи:
-- Любая сущность стремится в своём развитии к усложнённости.
-- Достигнув максимальной усложнённости, сущность погибает.
Как-то так.
ManHunter
(10.08.2017 в 10:54):
Плохая практика вообще срать где-то за пределами папки, куда программа установлена. И совсем днище маскировать какие-то данные под системные библиотеки.
Anonymous
(09.08.2017 в 00:01):
>> Регистрация хранится в файле %APPDATA%\vsound.dll.
Обычно вирусня такие файлы создаёт...
Плохая практика - срать прямо в %APPDATA%, а не в %APPDATA%\Папка_с_настройками_программы
Обычно вирусня такие файлы создаёт...
Плохая практика - срать прямо в %APPDATA%, а не в %APPDATA%\Папка_с_настройками_программы
Добавить комментарий
Заполните форму для добавления комментария