Навигация по сайту:
Статья "Распаковка Private ExE Protector 1.9":
<< Все статьи по взлому Версия для печати
Только для образовательных целей!
Автор:SubZero [SnD], Sh [AHT]
Уровень:Для опытных
Программа:UnpackME
Тип защиты:Private ExE Protector 1.9

Перевод статьи Sh [AHTeam] – http://ahteam.org


[ Кое-что об упаковщике ]

Private ExE Protector (PEP) – это несложный протектор. В нем имеются функции:

1. Анти-отладчик:

a) Проверка PЕВ (для скрытия используйте OllyAdvance By MarKuS-DJM или другой плагин).

b) FindWindow: Получает список окон, используя EnumWindows API, проверяет первые символы на соответствие "Import REC" / "OllyDBG" (нужно патчить заголовки окон ImpREC и OllyDBG).

c) К файлу добавляется большая секция:



OllyDBG виснет, и дамперы могут вести себя непредсказуемо.

2. Краденые байты:

Мы найдем их и добавим к файлу.

3. Краденые ресурсы:

Протектор шифрует ресурсы, добавляет к упакованному файлу и очищает секцию .rsrc. Затем перехватываются и эмулируются функции работы с ресурсами FindResource, LoadResource, SizeOfResource.

4. Импорт:

Импорты Kernel32 эмулируются при помощи переходников (мы напишем плагин для ImpREC).


[ Перед отладкой ]

Итак, нам нужно:

Настроить любой антиотладочный плагин для ollydebugger; выбрать все возможные опции защиты, изменить заголовки окна ollydebugger при помощи Anti-Detect-Olly by TeST for ExeCryptor (либо взять сборку Shadow Olly).

1. Изменить заголовок окна ImpRec.

2. Удалить большую секцию (в данном случае .reloc), и изменить виртуальное смещение VOffset секции .rdata на 0B000 (значение VOffset секции .reloc)

Откроем программу в отладчике… проблема… мы забыли про таблицу импорта. В ней только одна функция - ExitProcess. Удаляем таблицу полностью (обнуляем значения):



Дальше нам нужно выделить память по адресу 3550B000 (VA = 3510B000 RVA + 400000 IMGBASE), и скопировать туда секцию .rdata ( потому что все адреса относительные и замена смещения VOffset секции .rdata все испортит!).

Для этого нужно добавить 50 байт в файл и перенести туда значение OEP. В этих байтах мы напишем такой код:



Файл готов к отладке.


[ Эмуляция функций Kernel32 / нахождение Stolen Codes / OEP ]

Установить breakpoint на ntdll.ZwCreateThread (потому что kernel32.CreateThread эмулирована; и упаковщик использует Zw вместо обычного API).

В отладчике Shift+F9 и ждем остановки...

Удаляем breakpoint и ставим другой на ntdll.LdrGetProcedureAddress (потому что kernel32.GetProcAddress тоже эмулирована).

Еще раз Shift+F9 и ждем ...

Удаляем breakpoint, и переходим на второй адрес возврата (как на рисунке):



Код должен выглядеть так (признак того, что мы в нужном месте - Virtual Protect):



Добро пожаловать в область эмуляции импорта и переходников! Прокручиваем окно немного вниз:



Как видно, идет сравнение адреса импорта с адресом kernel32. Если не равно, происходит переход… нам нужно сделать его постоянным, чтобы импорт не эмулировался. Ок, некоторые функции могут не определиться… посмотрим…

Ставим hardware breakpoint на условный переход и перезапускаем программу.

Когда произойдет остановка, изменим его на JMP и удалим breakpoint. Прокручиваем окно еще ниже:



Ставим breakpoint на RETN 8, запускаем программу (Run) и ждем остановки. F8 один раз. Затем Ctrl+F9 (Execute till return)



Еще раз F8... мы нашли краденые байты (которые немного отличаются от оригинальных, так что мы не можем их просто скопировать на OEP. Но мы можем добавить их в новую секцию!)

Вот они, краденые байты… сохраним их:



Ставим breakpoint на RETN... запускаем ... потом F8 - и мы приземлились возле OEP. Отлично, делаем дамп! (автор рекомендует OllyDump). Потом открываем полученый дамп в LordPE, удаляем эти секции и делаем Rebuilt PE.



Автор использует следующие опции для получения лучшего результата:



Время заняться импортом; запускаем ImpREC, пишем смещение EP (Offset Of The EP) ... можно использовать плагин от автора, но сначала нам нужно поправить защищенный файл:

Заходим в функцию импорта ( jump / call to API :)



Нам нужно изменить плагин так, чтобы на выходе значение EAX было равно адресу API (как показано на рисунке). После правки плагина весь импорт должен корректно восстановиться! Теперь откроем дамп с поправленным импортом в редакторе ToPo и добавим 0x77+5 байт в новую секцию (не забудьте выставить "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
Интересная статья! спасибо за пеевод!
Добавить свой комментарий:
Ваше имя: Текст сообщения:
Ваш E-Mail:
Введите код:   

ALIEN Hack Team - © 2003-2024
Лицензионное соглашение