Исследование защиты программы Attribute Manager
Скриншот программы Attribute Manager
Attribute Manager предназначен для решения непосильных задач по массовому изменению атрибутов файлов и/или времени их модификации. Как известно, в жизни каждого компьютерщика такая необходимость возникает чуть реже, чем никогда, поэтому подобную программу нужно обязательно держать на самом видном месте. Как вы поняли, это была шутка. Непонятная софтина с сомнительной нужностью, да еще и за деньги. Понятность и полезность я добавить ей уже не смогу, а вот с последним надо бороться.
Забираем с офсайта дистрибутив, распаковываем, устанавливаем. При старте и выходе программа радует нас триальным окном с предложением зарегистрироваться или купить ее.
Триальное окно
Главный исполняемый файл накрыт протектором ASProtect, причем какой-то свежей версии (1.35 build 06.26 Release, если быть точным). Для разнообразия попробуем его снять с помощью скрипта в отладчике. Нам понадобится OllyDbg с установленными плагинами ODbgScript и OllyDump, а также скрипт распаковщика Aspr2.XX_unpacker, желательно также самой последней версии. Взять его можно тут:
Отправляем файл в отладчик, но не запускаем. В меню плагинов выбираем "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" в самом файле. При желании можете заменить его на что-нибудь другое. На этом все, сегодня мы еще немного потренировались в ручной распаковке всякой навесной гадости.
Просмотров: 2806 | Комментариев: 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
Неужели там правда эти самые "спертые" байты, без которых прога не работает?
_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" - тоже заскладировал.
Бывает нужно.
Там ещё есть "Renamer" - тоже заскладировал.
Бывает нужно.
ManHunter
(26.04.2018 в 17:58):
Я запросы не выполняю, тем более здесь.
Евгений
(26.04.2018 в 17:50):
по мотивам запроса на ру-борде? :)
Добавить комментарий
Заполните форму для добавления комментария