Blog. Just Blog

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

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

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

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

Триальное окно
Триальное окно

Главный исполняемый файл накрыт протектором ASProtect, причем какой-то свежей версии (1.35 build 06.26 Release, если быть точным). Для разнообразия попробуем его снять с помощью скрипта в отладчике. Нам понадобится OllyDbg с установленными плагинами ODbgScript и OllyDump, а также скрипт распаковщика Aspr2.XX_unpacker, желательно также самой последней версии. Взять его можно тут:

Aspr2.XX_unpacker.1.15FAspr2.XX_unpacker.1.15F

Aspr2.XX_unpacker.1.15F.zip (29,157 bytes)

Отправляем файл в отладчик, но не запускаем. В меню плагинов выбираем "ODbgScript", "Run Script..." и выбираем файл скрипта для распаковки. Когда он закончит работу, надо посмотреть результаты, в них содержатся нужные нам данные. В меню плагинов выбираем "ODbgScript", "Log Window..." и из открывшегося окна лога копируем все строчки куда-нибудь в блокнотик.

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

Теперь делаем дамп процесса. Можете воспользоваться для этого своими любимыми инструментами, а мне вот нравится OllyDump. Не забываем снять галочку "Rebuild Import", остальные значения по умолчанию.

Делаем дамп
Делаем дамп

Теперь надо восстановить импорт. Инструментов для этого немало, я буду использовать старый добрый ImpREC. Выбираем нужный процесс, в поля "OEP", "RVA" и "Size" подставляем значения из лога скрипта, соответственно, "RVA of OEP", "RVA of IAT" и "Size of IAT". Нажимаем кнопку "Get Import". Если все сделано правильно, то вы сразу получите безошибочный список импортируемых функций.

Загружаем таблицу импорта
Загружаем таблицу импорта

Прикручиваем полученный импорт к дампу, сделанному на предыдущем шаге. Нажимаем кнопку "Fix Dump" и выбираем файл с дампом.

Прикручиваем импорт к дампу
Прикручиваем импорт к дампу

Теперь можно закрыть отладчик и все остальные инструменты, а затем попробовать запустить распакованный и исправленный файл. В защите используется стандартная аспровская схема регистрации, скрипт при распаковке ее автоматически патчит таким образом, чтобы программа считала себя зарегистрированной. Проверяем:

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

Так и есть, триальное окно при старте и выходе пропало, никаких ограничений по времени работы нет. Кстати, регистрационное имя нигде не используется, оно жестко прописано строчкой "Registered User" в самом файле. При желании можете заменить его на что-нибудь другое. На этом все, сегодня мы еще немного потренировались в ручной распаковке всякой навесной гадости.

Поделиться ссылкой ВКонтакте Поделиться ссылкой на Facebook Поделиться ссылкой на LiveJournal Поделиться ссылкой в Мой Круг Добавить в Мой мир Добавить на ЛиРу (Liveinternet) Добавить в закладки Memori Добавить в закладки Google
Просмотров: 2008 | Комментариев: 11

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

Комментарии

Отзывы посетителей сайта о статье
Жека (24.05.2018 в 10:46):
nubuser, с твоей прогой справляется скрип Aspr2.XX_unpacker.1.15F, он автоматом восстанавливает "спёртые байты". Прикручивать импорт надо будет дампу созданному этим же скриптом при распаковке, он будет в корне программы под именем - de_hcruiser.exe. На выходе получается триальная версия с ограниченным функционалом, но со снятым счётчиком дней. Как писал ManHunter - для нормальной распаковки нужен валидный ключ или патчить сам протектор, так как он "цука" дописывает недостающей код о регистрации и снятия ограничений для полного функционала в память. Патчить сам протектор, для новичка - это практически не выполнимая задача, так же как и копаться в "распакованном триальном коде" и что-то мудрить с переходами на нужный вам участок.
ManHunter (21.05.2018 в 11:25):
Там еще и пошифрованный код, если мне память не изменяет. Без валидного ключа вообще нормально не распаковать.
nubuser (21.05.2018 в 10:44):
Простите, что не совсем по теме именно этой программы (но в рамках программы обучения ManHunter ;), но если при распаковке другой программы скрипт пишет: "There are stolen code, check IAT data in log window" , а также дамп падает с ошибкой - что нужно почитать по этому вопросу? Хотя в некоторых статьях просто не обращали внимание на это сообщение, в моем случае не работает.
_http://helpcruiser.com/download/helpcruiser.exe

Неужели там правда эти самые "спертые" байты, без которых прога не работает?
voffka (01.05.2018 в 10:43):
DecomAS на XP справился без проблем, нужно только поправить знаменитую аспровую "ссылку на имя" 00404632.MOV EAX,DWORD PTR DS:[4F2004], скрипт это автоматом делает. Так-же для ольки есть плагин CodeDoctor, он тоже распаковывает, но делает это специфически, как с истекшим триалом, так что нужно править 0040180F.CALL DWORD PTR DS:[4F10C0], вызов Form_Main вместо нага.
ManHunter (01.05.2018 в 10:01):
Не спорю. Но Stripper и DecomAS с ним не справились.
voffka (01.05.2018 в 03:38):
Точнее, дата релиза 2006.06.26
voffka (01.05.2018 в 03:16):
Этот свежий билд аспра был выпущен более 10 лет назад :)
xussr (30.04.2018 в 11:57):
Спасибо! за отличный урок и пожелания побольше таких жизненных примеров!
user (27.04.2018 в 10:53):
Полезная программка.
Там ещё есть "Renamer" - тоже заскладировал.
Бывает нужно.
ManHunter (26.04.2018 в 17:58):
Я запросы не выполняю, тем более здесь.
Евгений (26.04.2018 в 17:50):
по мотивам запроса на ру-борде? :)

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

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

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