Дело было так: Есть программа PEiD говорит: ASProtect 1.2x - 1.3x [Registered] -> Alexey Solodovnikov. Еще какой то Id (не помню который) говорит: ASProtect 1.2x [New Strain] Вот. Приступаем. 1. OEP нашел вроде: 00410847, но там: Код (Text): xor eax, eax push 00000000 cmp dword ptr[esp+08], eax push 00001000 Прога изначально писана на VC - это явно не начало, значит украл ASPR гад, ищем в мусоре находим аналог следующему: Код (Text): 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 и вместо импорта видим типа такого: Код (Text): 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.
C распаковкой дествительно проблемы... >>Сама же программа защищена ключем в реестре (видимо) которого естественно нету. Не реестр а ключивой файл.
"plug-in ASProtect 1.22 - ресолвится как GetProcAdress." Многие плагины ЧАСТО глючат.=> Не юзай, ручками. 1. Открываем полученное в W32Dasm и вместо импорта видим типа такого: Юзай иду, в виндизасме чёто кудато ещё надо добавить для просмотра импорта!