Blog. Just Blog

Исследование защиты программы VCap Downloader

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

Программа VCap Downloader позволяет сохранять видео и аудио с различных хостингов. Работает на движке браузера Chrome, по интерфейсу очень сильно этот браузер напоминает. Вы просто переходите по ссылкам в основном окне, а справа появляются предложения на загрузку. В незарегистрированном варианте часть функций закрыты, в том числе и сохранение видео в хорошем качестве. Но раз уж мы собрались тырить видосики, то попутно притырим и инструмент для их скачивания.

Забираем с сайта дистрибутив последней версии, устанавливаем. В процессе установки загружаются дополнительные компоненты, без них ничего работать не будет. После установки смотрим, что и как. Сразу бросается в глаза надпись "Незарегистрировано" в заголовке главного окна. С этого и начнем. Хотя начать надо, конечно, с дизассемблера, но вы это и так хорошо знаете.

Строка в языковом файле
Строка в языковом файле

Программа мультиязычная, соответствующий языковой файл находится в папке Languages. Код строки 10776 или 2A18h, если смотреть в шестнадцатеричной системе счисления. Код, в котором используется это значение, выглядит следующим образом:
  1. ; Загрузить в AL флаг регистрации
  2. .text:004E6444                 mov     al, byte_6BEEEC
  3. .text:004E6449 loc_4E6449:
  4. .text:004E6449                 test    al, al
  5. ; Если он не нулевой, то перепрыгнуть загрузку строки
  6. .text:004E644B                 jnz     loc_4E657E
  7. ; Загрузить строку "Незарегистрированная"
  8. .text:004E6451                 mov     ecx, 2A18h
  9. .text:004E6456                 call    sub_581980
  10. .text:004E645B                 mov     edx, eax
Тут проверяется флаг регистрации, по результатам проверки выполняется условный переход или же загружается строка в заголовок окна. Давайте посмотрим, где инициализируется этот флаг. Для этого откроем список перекрестных ссылок.

Перекрестные ссылки на флаг
Перекрестные ссылки на флаг

Фигвам. Только проверки или же загрузка значения флага. Никаких прямых инициализиаций. Ничего страшного, там, где не помогает дизассемблер, поможет отладчик. Загружаем программу в отладчик и ставим хардварную точку останова на запись в байт памяти по адресу 006BEEEC.

Ставим точку останова
Ставим точку останова

Запускаем программу на выполнение. Запись в память сработает только в двух местах.
  1. ; Первая инициализация флага регистрации
  2. .text:0058E9D9                 mov     byte ptr [ecx+4], 0
  3. .text:0058E9DD                 mov     dword ptr [ecx+8], 0
  4. .text:0058E9E4                 mov     dword ptr