воскресенье, 19 июля 2015 г.

Кейгеним Video Repair Software

В этой статье я расскажу как закейгенить Video Repair Software, это программа является "не простой" и отреверсить алгоритм работы достаточно не простая задача которая занимает много времени, ведь в своём составе она имеет виртуальную машину для выполнения скрипта.




Video Repair Software - очень полезная программа для восстановления повреждённых видеороликов, для их восстановления она использует другие ролики которые не повреждены.

Инструментарий:
  1. OllyDBG
  2. IDA

Этот высер стоит аж 100 евреев что в рублях составляет 6200, по этому не медлим ни секунды и загоняем его в IDA:



Кто не первый раз сталкивается с серьёзными протекторами или интерпретаторами - сразу заметит в этом дереве виртуальную машину. А если вы сразу не заметили - бегом гуглить что это такое для понимания сути происходящего!
Но что делать дальше? Пощади клавишу F2, не надо ставить бряки на каждую функцию, ведь отладка займёт очень много времени!

Давайте изучим программу получше, для этого загружаем её в OllyDBG и запускаем (клавиша F9). Как только программа запустится - сделаем дамп памяти при помощи плагина OllyDump для всем известного отладчика OllyDBG.
Сделали? Идём дальше, открываем этот дамп любым текстовым редактором и быстренько пробегаемся по нему в поисках распакованного скрипта! Чуть ниже середины наблюдаем подобный код отвечающий за проверку:


Бинго! Спасибо разработчикам что не заставили меня изучать байткод. Давайте изучим что здесь происходит:

  1. g.demo = true - устанавливаем деморежим
  2. g.requestnumb = requestnumber() - получаем рег. номер
  3. local p = g.requestnumb - копируем рег. номер

Далее происходит генерация правильного серийника (ответа на число-вопрос), для примера возьмём число-вопрос 1234:

Берётся третий символ и вычитается из 9 => 6
Берётся первый символ и вычитается из 9 => 8
Берётся четвёртый символ и вычитается из 9 => 5
Берётся второй символ и вычитается из 9 => 7

В результате получаем ключ 6857 который используем для регистрации ПО. Основываясь на этих данных вы можете в любой среде программирования написать простенький кейген.

Данный метод подходит для большинства новых "защит" которые позиционируют как панацея от декомпиляции и деобфускации, все они обходятся путём перехвата расшифрованного скрипта на выходе соответствующей функции.

2 комментария: