· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.RESEARCH —› Не выходит распаковать ASProtect (руками)

Посл.отвђт Сообщенiе


Дата: Ноя 17, 2004 18:35:05 · Поправил: DenisMallex

Дело было так:

Есть программа PEiD говорит: ASProtect 1.2x - 1.3x [Registered] -> Alexey Solodovnikov.

Еще какой то Id (не помню который) говорит: ASProtect 1.2x [New Strain]

Вот. Приступаем.
1. OEP нашел вроде: 00410847, но там:
xor eax, eax
push 00000000
cmp dword ptr[esp+08], eax
push 00001000

Прога изначально писана на VC - это явно не начало, значит украл ASPR гад, ищем в мусоре находим аналог следующему:
PUSH EBP
MOV EBP,ESP
PUSH   -1
PUSH   425D30
PUSH   4108AC
MOV EAX,DWORD PTR FS:[0]
PUSH EAX
MOV DWORD PTR FS:[0],ESP
SUB ESP,58
PUSH EBX
PUSH ESI
PUSH EDI
MOV DWORD PTR SS:[EBP-18],ESP
CALL DWORD PTR DS:[424228]               ; kernel32.GetVersion
XOR EDX,EDX
MOV DL,AH
MOV DWORD PTR DS:[431904],EDX
MOV ECX,EAX
AND ECX,000000FF
MOV DWORD PTR DS:[431900],ECX
SHL ECX,8
ADD ECX,EDX
MOV DWORD PTR DS:[4318FC],ECX
SHR EAX,10
MOV DWORD PTR DS:[4318F8],EAX
PUSH 1

Т.е. начало C-шной программы - дальше в обычной проге как раз Call на то что мы нашли как OEP.
(Даже ф-цию в себя затянул ASPR гад).
Кстати перед "OEP" - пустых байт или мусора нету - т.е. украл но как-то не обычно, ладно - это мы обойдем - прилепим наш кусок в конец секции (там места хватает) туда поставим OEP и сдалаем какраз Call на этот обрубок.

Пока все ОК. Программа на "OEP" делаем dump (PE Tools или LordPE). Берем ImpRec 1.6F ставим наш OEP-Base в "OEP" т.е. 00010847. Жмем IAT Auto Search имеем: RVA 00024000 Size 000004A4 - функций в оригинальной проге импортируется раз-два и обчелся. Жмем GetImports 122 resolved, 1 - нет. К той одной plug-in ASProtect 1.22 - ресолвится как GetProcAdress. Т.е. все resolved - FixDump - суем дамп.

Вроде должно работать но как бы не так.
1. Открываем полученное в W32Dasm и вместо импорта видим типа такого:
 Addr:087E393C hint(0000) Name: б|й_с"щ_щ_щ_щ"щ_щ_щ°щРшШd3жалиvоxрzф|ш р=,
 Addr:83C0BE0F hint(BE0F) Name: б|й_с"щ_щ_щ_щ"щ_щ_щ°щРшШd3жалиvоxрzф|ш р=,
 Addr:06EB38E8 hint(0000) Name: б|й_с"щ_щ_щ_щ"щ_щ_щ°щРшШd3жалиvоxрzф|ш р=,
 Addr:83C0BE0F hint(BE0F) Name: б|й_с"щ_щ_щ_щ"щ_щ_щ°щРшШd3жалиvоxрzф|ш р=,
 Addr:464631E8 hint(0000) Name: б|й_с"щ_щ_щ_щ"щ_щ_щ°щРшШd3жалиvоxрzф|ш р=,
 Addr:7C14453B hint(0000) Name: б|й_с"щ_щ_щ_щ"щ_щ_щ°щРшШd3жалиvоxрzф|ш р=,


Что я криво сдалал ?? Причем один раз удалось (не помню как) получит нормальный импорт в W32Dasm. Даже тут нас поджидает главная загвоздка:

В листинге есть вызовы вида Call 00EE0000 во МНОГИХ случаях, например - рядом с "OEP" там где в нормально программе Call на HeapCreate и во множесте других случаев.

Что я не сделал или сделал не так. Может кто объяснит и/или поможет распаковать ??

Программу вышлю на e-mail если кто может помочь (~300Kb
один .exe, не требует инсталляции). Или можно скачать
линк

Unpack-erы типа AsprStripperXP 1.35, Stripper 2.07F, Stripper 2.11RC2 - программу не берут. С чем вылетает первый - не помню, а Stripper-ы: происходит запуск программы, затем срабатывание защиты - Protection Error в одном случае Error 80 в другом Error 85 - для какого Stripper-а какой Error - не помню да и не важно это.

Сама же программа защищена ключем в реестре (видимо) которого естественно нету. Попытка не распаковывая выявить алгоритм проверки ключа (видимо что-то типа контрольной суммы) - мне не удалась - запутано сильно, причем похоже что частью к этому приложил руку ASPR.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.095