Blog. Just Blog

Исследование защиты программы Ultra Tag Editor

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

Программа Ultra Tag Editor от Atelio Software - редактор тегов файлов в формате MP3 (ID3v1, ID3v2.2, ID3v2.3 и ID3v2.4) и OGG (vorbis comments). Удобство работы и функционал, конечно, на любителя, лично мне, например, больше всего нравится бесплатный Mp3tag, но в качестве подопытного очень даже сгодится.

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

Наг-окно при запуске программы
Наг-окно при запуске программы

Возможность потратить бабло мы рассмотрим в какой-нибудь другой статье, а пока посмотрим на файл изнутри. Характерные названия секций файла наводят на мысль, что файл упакован ASProtect'ом. PEiD и ASPrINF нашу догадку подтверждают.

Файл упакован ASProtect
Файл упакован ASProtect

Для распаковки нам потребуется отладчик OllyDbg, к нему обязательно надо установить два плагина: OllyDump и ODBGScript. Также нам обязательно потребуется скрипт от китайского товарища VolX - ASProtect 1.3x - 2.xx Unpacker v1.15E. Распакуйте плагины в папку Plugins отладчика, а скрипт распакуйте куда-нибудь в сухое прохладное место. Из дополнительного инструментария потребуется программа для восстановления импорта, например, ImpRec.

Переходим к распаковке ASProtect. Загружаем файл в отладчик, поскольку файл упакованный, OllyDbg сразу сообщит об этом и запросит подтверждение на дизассемблирование. Соглашаться не надо, все равно мы пока ничего интересного не увидим. Первая стадия распаковки. Идем в меню Plugins - ODBGScript - Run script... и в открывшемся окне выбираем распакованный скрипт Aspr2.XX_unpacker_v1.15E.osc Скрипт сразу же начнет работу, и остановится с сообщением, что "краденого кода" (одна из опций защиты ASProtect) в файле не обнаружено, и что данные для восстановления импорта файла находятся в окне лога.

Скрипт закончил работу
Скрипт закончил работу

Отладчик находится на OEP файла, пока в нем ничего не трогаем. Сейчас надо сделать дамп файла. В принципе, скрипт-распаковщик делает дамп автоматически, но он получается с испорченным PE-заголовком. Чтобы потом не возиться дополнительно с восстановлением файла, лучше сделаем дамп самостоятельно. Plugins - OllyDump - Dump debugged process.

Дамп файла
Дамп файла

В открывшемся окне обязательно уберите галочку Rebuild Import и нажмите кнопку Dump. Сохраните дамп в какой-нибудь файл, например, dumped.exe, или же поверх файла, который создал скрипт de_TagEditor.exe, все равно он бы нам больше не понадобился.

Дамп готов, теперь надо восстановить секцию импорта. Помните, сообщение скрипта, что информация для импорта записана в лог? Отлично, открываем в отладчике лог работы скрипта Plugins - ODBGScript - Log Window... и смотрим, что у нас там есть интересного.

Лог работы скрипта
Лог работы скрипта

Вот этот же лог, только в текстовом виде. В нем хорошо видно, какие функции защиты были использованы: привязка к железу, а также регистрация средствами ASProtect. Красным цветом выделены строки, которые нужны для восстановления импорта.

142276F freeloc: 00170000
493884 GetHardwareID 0058A680
493824 GetDecryptProc 0058A690
493834 GetEncryptProc 0058A690
493844 GetRegistrationInformation 0058A6A0
58A5D0 Address of IAT = 005941B8
58A5D0 RVA of IAT = 001941B8
58A5D0 Size of IAT = 00000930
58A5D0 Address of OEP = 0058A5D0
58A5D0 RVA of OEP = 0018A5D0

Запускаем ImpRec, в верхнем окне выбираем процесс - tageditor.exe, в нижнем окне заполняем данные из лога скрипта: OEP = RVA of OEP, RVA = RVA of IAT, Size = Size of IAT. После этого нажимаем кнопку Get Imports. Если все сделано правильно, то в среднем окне появится список импортируемых функций и библиотек, все должны быть с пометками "valid: YES".

Восстановление импорта
Восстановление импорта

Нажимаем кнопку Fix Dump и выбираем сохраненный файл дампа. ImpRec в логе должен написать, что импорт был успешно прикручен к дампу. Все, закрываем отладчик, ImpRec и остальной инструментарий, попробуем запустить дамп с прикрученным импортом, в моем случае это файл de_TagEditor_.exe

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

Мало того, что с программы полностью снят навесной протектор, так она теперь сразу стала зарегистрирована. Как это получилось? Дело в том, что скрипт от VolX, кроме распаковки файла, модифицирует код протектора, ответственный за регистрацию, таким образом, чтобы он всегда возвращал признак "зарегистрировано". А стало быть защиты программ, основанные только на средствах ASProtect, будут считать что все в порядке.

Таким же способом снимается навесная защита ASProtect не только с Ultra Tag Editor, но и со многих других программ, причем часть из них тут же становятся зарегистрированными. Но имейте в виду, что способ этот не дает 100% гарантии, и успешный результат зависит от использованных опций защиты.

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

Внимание! Статья опубликована больше года назад, информация могла устареть!

Комментарии

Отзывы посетителей сайта о статье
Rice (26.07.2013 в 12:47):
Есть ещё более удобный и более бесплатный и русский редактор тегов: xdlab.ru. По своему многолетнему опыту работы с музыкальными файлами скажу, что лучше редактора не встречал.
ManHunter (18.07.2011 в 10:47):
Этот метод немного устарел. DecomAS рвет ASProtect как грелку. Только там вся нужная часть кода пошифрована по ключу, и без рабочего серийника туда нефиг даже соваться.
irokkezz (18.07.2011 в 00:45):
Во первых огромное спасибо за Ваши публикации, особенно по исследованию защит.
А во вторых вопрос, касаемо ASPr'а. После распаковки исполняемого файла программы Recovery Toolbox for RAR (http://www.recoverytoolbox.com/rar.html) вышеизложенным способом, распаковка происходит без проблем. Но программа не запускается, при попытке запуска генерирует файл Err.log с записью [ASP_IsOK3] :. Если не трудно, подскажите пожалуйста куда копать.
Еще раз спасибо за Вашу работу.
Isaev (09.09.2010 в 14:49):
А если скрипт произвёл ещё 2 файла
jmptable.bin и st_table.bin
что с ними делать? :)
ManHunter (09.09.2010 в 00:42):
Значит как-то неправильно отработал скрипт.
Isaev (08.09.2010 в 15:56):
//все должны быть с пометками "valid: YES"
А если не все? :)
...я не имею ввиду эту прогу.
Soso (07.09.2010 в 18:04):
Молодчик, спасибо за мануал !!!!!

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

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

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