Правила форума
0 Пользователей и 1 Гость просматривают эту тему.
Пробуй RestoratorEZ_Extract
PS:С японского перевести нужно чтоль?
юзай хекс редактор...
Здравствуйте, мои дорогие а-чатовцы. С вами снова я, после долгого отсутствия, вернулся на любимый форум. Я надеюсь, вы ещё меня не зыбыли , и не сбросили меня со счетов. Просто по некоторым техничиским причинам, я не мог выйти в сеть.Инструменты ------------• PE Tools 1.5 :[ 1.5 - это версия которой пользуюсь я, так как она меня не подводила ]• ImpREC 1.6 :[ 1.6 - это версия которой пользуюсь я, так как она меня не подводила ]• OllyDebuger 1.10 :[ Желательно иметь плагины: CommandBar v3.0 & OllyDump 2.21 ]• Target aka жертва :[ будем ковырять сапёра для XP, сжатого UPX с ключом: --best ]Настройки---------Итак, для того чтобы что-нить распаковать, прежде всего необходимо настроить свой PE Tools и ImpREC, так и делаем. Сверте настройки с моими (помеченные галочками настройки будут обозначаться как: - [•]):[PE Tools]+--------------------------------------------+| | [•] Restore Last Directory on startup | [•] Restore Last Main Window Position | [•] Create Backup Copy | [•] Section Table: Autofix SizeOfImage | [•] Optional Header: Autofix CheckSum | [•] Optional Header: Autofix SizeOfHeaders | [•] Full Dump: Paste Header From Disk | [•] Full Dump: Fix Header | [•] Delete Temp Files | [•] Wipe Relocation | [•] Validate PE | [•] Rebuild PE | [•] Bind Imports | +-------------------------+------------------+|P.S - Остальное вырубайте|+-------------------------+[ ImpREC ]+--------------------------------------------+| | [•] Fix EP To OEP | [•] Enable Debug Privelege (NT/2K/XP) | [•] Use PE Header From Disk | +---------------------------------+----------+|P.S - Остальное оставить как было|+---------------------------------+Распаковка----------Итак, с настройками определились, и самое время начать распаковывать прогу, в данном случае уже заранее запакованного вами Сапёра. Что? Вы ещё это не сделали? Ладно, делаем вместе:upx.exe --best winmine.exeФух, сделали? Ну тогда продолжим:Суём в Olly наш запакованный бинарник, на табличке с предупреждениями жмём OK! Перед нами должен быть примерно такой код:Код:01021C20 > $ 60 PUSHAD : <- Эта строка называется EntryPoint01021C21 . BE 00100101 MOV ESI,winmine.0101100001021C26 . 8DBE 0000FFFF LEA EDI,DWORD PTR DS:[ESI+FFFF0000]01021C2C . 57 PUSH EDI01021C2D . 83CD FF OR EBP,FFFFFFFF01021C30 . EB 10 JMP SHORT winmine.01021C42Что же мы видим? Типичное начало для UPX'ов! Теперь, жмём Ctrl+F и вводим "popad". Жмём Enter! Вывалиаемся тут:Код:01021D6E > 61 POPAD01021D6F .-E9 AD20FEFF JMP winmine.01003E21 : <- Эта строка перехода на OriginalEntryPoint01021D74 00 DB 00 : Она то нам и нужна...01021D75 00 DB 00Итак, мы стоим на 01021D6E! Жмём F2, чтобы поставить бряк на это место, потом жмём F9, чтобы запустить прогу. Она остановиться на 01021D6E. Жмём 2 раза F8, и попадаем на такое:Код:01003E21 6A 70 PUSH 7001003E23 68 90130001 PUSH winmine.0100139001003E28 E8 DF010000 CALL winmine.0100400C01003E2D 33DB XOR EBX,EBX01003E2F 53 PUSH EBX01003E30 8B3D 8C100001 MOV EDI,DWORD PTR DS:[100108C] : kernel32.GetModuleHandleA01003E36 FFD7 CALL EDI01003E38 66:8138 4D5A CMP WORD PTR DS:[EAX],5A4D01003E3D 75 1F JNZ SHORT winmine.01003E5EВот это и есть точка входа в распакованную программу. Стандартное начало программ написанных на VC++. В это время отладчик находиться в состоянии "Paused", стоит прямо на OEP, да и кстати прога уже распаковалась в памяти! Самое время сделать дамп!Не закрывая отладчика, запускаем PE Tools, находим процесс нашей проги (НЕ ОТЛАДЧИКА!!!), на ней ПКМ->Dump full...Сохраняем дамп проги в удобное место, и закрываем PE Tools.Заметьте, что отладчик у нас остаётся загружен, то есть мы его не закрываем!!!Запускаем ImpREC, выбираем процесс нашего Сапёра и ... А теперь внимательней:В ImpREC'e есть такая фишка, IAT Autosearch! Найдите три поля: OEP, RVA и Size, а рядом кнопочка будет "IAT Autosearch". Нам нужно в поле OEP вписать OEP, но без ImageBase. То есть:OEP у нас равен: 01003E21ImageBase равен: 01000000Делаем:OEP-ImageBase=[значение которое нужно вписать в поле OEP], то есть мы из OEP вычитаем ImageBase и получаем 3E21. Вот это число вы должны вписать в поле для OEP. Вписали? Жмём "IAT Autosearch", нам должны сказать что:Found Adresses wich may be in the original IATТеперь жмите GetImports, теперь Fix Dump и выбираем наж дамп, который мы получили при помощи PE Tools. При этом в окне лога ImpREC'a должно появится следующее:C:\Documents and Settings\Администратор\Рабочий стол\Unpacking\Dumped_.exe saved successfully.Вот и всё теперь файл Dumped_.exe можно отлаживать как нормальную прогу. Поздравляю! Вы распаковали UPX!В следующей статье вы будете распаковывать ASPack!До скорых встречь![c] KindEcstasy