Статья "Распаковка Private ExE Protector 1.9":
|
|
<< Все статьи по взлому
|
Версия для печати
|
|
Только для образовательных целей! |
|
Автор: | SubZero [SnD], Sh [AHT] |
Уровень: | Для опытных |
Программа: |
Тип защиты: |
Перевод статьи Sh [AHTeam] – http://ahteam.org
[ Кое-что об упаковщике ]
Private ExE Protector (PEP) – это несложный протектор. В нем имеются функции:
a) Проверка PЕВ (для скрытия используйте OllyAdvance By MarKuS-DJM или другой плагин).
b) FindWindow: Получает список окон, используя EnumWindows API, проверяет первые символы на соответствие "Import REC" / "OllyDBG" (нужно патчить заголовки окон ImpREC и OllyDBG).
c) К файлу добавляется большая секция:
OllyDBG виснет, и дамперы могут вести себя непредсказуемо.
Мы найдем их и добавим к файлу.
Протектор шифрует ресурсы, добавляет к упакованному файлу и очищает секцию . Затем перехватываются и эмулируются функции работы с ресурсами .
Импорты Kernel32 эмулируются при помощи переходников (мы напишем плагин для ImpREC).
[ Перед отладкой ]
Итак, нам нужно:
Настроить любой антиотладочный плагин для ollydebugger; выбрать все возможные опции защиты, изменить заголовки окна ollydebugger при помощи Anti-Detect-Olly by TeST for ExeCryptor (либо взять сборку Shadow Olly).
1. Изменить заголовок окна ImpRec.
2. Удалить большую секцию (в данном случае ), и изменить виртуальное смещение VOffset секции на (значение VOffset секции )
Откроем программу в отладчике… проблема… мы забыли про таблицу импорта. В ней только одна функция - . Удаляем таблицу полностью (обнуляем значения):
Дальше нам нужно выделить память по адресу (VA = + ), и скопировать туда секцию ( потому что все адреса относительные и замена смещения VOffset секции все испортит!).
Для этого нужно добавить 50 байт в файл и перенести туда значение OEP. В этих байтах мы напишем такой код:
Файл готов к отладке.
[ Эмуляция функций Kernel32 / нахождение Stolen Codes / OEP ]
Установить breakpoint на (потому что эмулирована; и упаковщик использует Zw вместо обычного API).
В отладчике Shift+F9 и ждем остановки...
Удаляем breakpoint и ставим другой на (потому что тоже эмулирована).
Еще раз Shift+F9 и ждем ...
Удаляем breakpoint, и переходим на второй адрес возврата (как на рисунке):
Код должен выглядеть так (признак того, что мы в нужном месте - ):
Добро пожаловать в область эмуляции импорта и переходников! Прокручиваем окно немного вниз:
Как видно, идет сравнение адреса импорта с адресом . Если не равно, происходит переход… нам нужно сделать его постоянным, чтобы импорт не эмулировался. Ок, некоторые функции могут не определиться… посмотрим…
Ставим hardware breakpoint на условный переход и перезапускаем программу.
Когда произойдет остановка, изменим его на и удалим breakpoint. Прокручиваем окно еще ниже:
Ставим breakpoint на , запускаем программу (Run) и ждем остановки. F8 один раз. Затем Ctrl+F9 (Execute till return)
Еще раз F8... мы нашли краденые байты (которые немного отличаются от оригинальных, так что мы не можем их просто скопировать на OEP. Но мы можем добавить их в новую секцию!)
Вот они, краденые байты… сохраним их:
Ставим breakpoint на ... запускаем ... потом F8 - и мы приземлились возле OEP. Отлично, делаем дамп! (автор рекомендует OllyDump). Потом открываем полученый дамп в LordPE, удаляем эти секции и делаем Rebuilt PE.
Автор использует следующие опции для получения лучшего результата:
Время заняться импортом; запускаем ImpREC, пишем смещение EP (Offset Of The EP) ... можно использовать плагин от автора, но сначала нам нужно поправить защищенный файл:
Заходим в функцию импорта ( jump / call to API :)
Нам нужно изменить плагин так, чтобы на выходе значение было равно адресу API (как показано на рисунке). После правки плагина весь импорт должен корректно восстановиться! Теперь откроем дамп с поправленным импортом в редакторе ToPo и добавим байт в новую секцию (не забудьте выставить "Redirect EntryPoint") ... и запишем туда краденые байты ( не забудьте исправить относительные смещения - relative Calls).
Файл полностью распакован. В будущем автор попробует найти способ исправить краденые ресурсы, так что ждите новую версию статьи ;)
Исходный текст плагина для ImpRec UnpackMe можно скачать здесь
Thanx And Greeting to : All SnD / Shabgard / UnReal Friends. SUB Z3R0 | Spirit Of The Wind | - SnD TeaM 2oo6 SnD TeaM 2oo6 Forum -> http://www.tuts4you.com/forum/
От переводчика: респект Woodmann forum, Wasm.ru, CrackL@b, ARTeam и всем авторам замечательных статей.
|
|
<< Все статьи по взлому
|
Версия для печати
|
|
|
Комментарии читателей к статье "Распаковка Private ExE Protector 1.9":
|
17.10.2015 15:46 |
Требует лечения, просит id, сделайте пожалуйста так, чтоб не просила, спасибо Download link: https://s3.amazonaws.com/iticsoftware-products/fix-api-arbitrage.zip |
|
14.01.2015 01:59 |
А Вы можете ломануть программу:* aioinstall511-harddisk* (*All In One Protector 5.1.1130.0*) За результат заплачу! |
|
26.08.2012 14:39 |
mojete poslati mne spum toka blok sait
|
|
Евгений 09.09.2010 13:11 |
Хорошая статья. От познания - к истине! Деньги - ничто, важна только жизнь!!! |
|
09.02.2010 02:47 |
Хай мены, однако :) в год по посту каждый пишет :D |
|
24.05.2009 13:59 |
нужен кряк или серийник для paretologic 1.4 |
|
4kusNick 20.06.2008 03:15 |
Ы и мне чтоли тут отметиться ;) Этакий черепаший мини-чат) Да, прот - шлакохерь, а за статью спасибо) |
|
15.06.2008 22:15 |
Пипец, ну и криптор - какую то херню использует - ваще ненормальный мнда уж ... нахер он нужен пусть лучше ExeCrypt юзает его попроще вроде снять |
|
21.04.2007 20:46 |
mne nada programs dlya Aliens Server bot programes |
|
GPcH 01.02.2007 19:33 |
Защита использует много частных случаев - как она вообще работает - не понимаю :) Тем более не понимаю как такое можно использовать в коммерческих целях :)
Статья нормальная :) |
|
07.12.2006 14:22 |
Интересная статья! спасибо за пеевод! |
|
|
|
Добавить свой комментарий:
|
|
|