Сейчас на форуме: _MBK_ (+5 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Dr.Web's FLY-CODE распаковывает Asprotect любой версии |
Посл.ответ | Сообщение |
|
Создано: 28 сентября 2010 15:01 · Поправил: volopas · Личное сообщение · #1 Как выковырять этот FLY-CODE? Тестировал Cureit при старте распаковывается в папку Temp. Там будет 2 exe-файла. Основной - тот который больше по размеру (у меня 2468 KB, имя скорее всего рамдомно задается): C:\..\Temp\984E2800-4EC2E780-EA2F340-DF552780\5fee1_xp.exe В OllyDBG в диалоге "Open 32-bit executable" в строке Имя файла: задать 5fee1_xp.exe, в строке Arguments прописать /lng:ru-scan /ini:setup_xp.ini В cureit нужно остановить проверку запущенных программ, которая там начинается автоматически, нажать F5 выбрать и начать проверку запакованного ASPROTECT'ом файла После выполнения последовательности PUSH EBX PUSH ESI PUSH ECX PUSH EDI PUSH 4 PUSH 0 CALL EAX все ресурсы уже распакованы. Но находятся в памяти. ![]() |
|
Создано: 28 сентября 2010 15:09 · Личное сообщение · #2 |
|
Создано: 28 сентября 2010 15:15 · Личное сообщение · #3 |
|
Создано: 28 сентября 2010 17:18 · Поправил: volopas · Личное сообщение · #4 |
|
Создано: 28 сентября 2010 17:54 · Личное сообщение · #5 |
|
Создано: 29 сентября 2010 00:27 · Личное сообщение · #6 |
|
Создано: 02 октября 2010 15:52 · Поправил: Clerk · Личное сообщение · #7 Ладно, опишу подробно. 1. Извлекаем из архива setup.dll и копируем куданибудь. 2. Регаем отладчик для экзешника в реестре("Image File Execution Options", "Debugger"). 3. Запускаем CureIt. Откроется отладчик. 4. Ищем строку в *****_xp.exe "DRWEB_InitDll" и ссылку на неё, будет такой код: Code:
5. Патчим эту процедуру(тут 45A390), исходная: Code:
Конечная: Code:
Стаб изменяется должным образом, имя и смещение. Потом в олли можно юзать бинарный копипаст. 6. Запускаем процесс. Будет загружен наш setup.dll указанный. 7. Берём ядерный отладчик(можно дров собрать на коленке), определяем ObType-калбэк в dwprot.sys. Раскрываем второе ветвление в калбэке(после Call IoGetCurrentProcess()). Там в самом начале проверка двух байтовых переменных на ноль. Зануляем первую, это отключит самозащиту(хз мб где в опциях есть). 8. Все остальные действия выполняются с setup.dll(VM тамже). Ищем строку "Asprotect". Это будет длинный список имён пакеров. Находим ссылку на найденное имя. Это будет один вход в таблице, в которой описаны пакеры. Таблица содержит множество сигнатур, вот описатель входа: Code:
Это 4 сигнатуры по которым определяется пакер, имя его, версия и ссылка на анпакер. Вот эта ссылка вам и нужна. 9. По ссылке на таблицу найдёте код выполняющий идентификацию пакера, вызывающий анпакер и выполняющий остальную работу с запакованным модулем. Кстате в глобальной таблице калбэков флая имеется вызываемый после идентификации анпакера, именно он и пишет в лог инфу про пакер(индекс 0x1E). ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Dr.Web's FLY-CODE распаковывает Asprotect любой версии |