Програма: Liatro Binary Explorer 1.0
URL: http://www.liatro.com/
Свалена на: 23.10.2003 Размер: 530Kb Език: VC++6.0
Защита: ASProtect 1.2 Цел: Разопаковане+crack Инструменти: SoftICE 4.05 + IceDUMP PEditor 1.7 by Y0da
LordPe by Yoda
PEiD 0.9 ImpREC 1.3+plugins
Revirgin
ASProtect като протектор се ползва според
мен в 90% от защитените с този вид защита програми. Срещал съм много
обиди към този вид защита - лесно се преодолявала. Не
е така. Лесното преодоляване се дължи на голямото количество
цели и на многото напреднали кракери, които се занимават с преодоляването
и. Тук е мястото да посоча руснаците - Hex, Dr.Golova, Wersion. Първият
е направил за иследването на механизма на разопаковане, на защитите,
които Солодовников променя по малко във всяка нова версия, на цялостния
механизъм на разопаковане и възстановяване на работещото exe толкова
много, че не мога да спестя моите благодарности към труда му. Да се
върна малко по-горе - тези напреднали кракери и програмисти проправят
пътя, по който след това се движи масата. Аз съм от нея. Възползвал
съм се от изследванията на Hex, за да намеря най-оптималния за мен начин.
Е по-надолу ще го споделя и с Вас. Но все пак не забравяйте - ASProtect
не е елементарен за преодоляване.
ОК да започваме.
1.Възползвайте се от интегрирането на LordPE в контекстното меню на WinExplorer
и Break'n'Enter като не забравите да сложите bpint3 в SIce
EAX=00401000 EBX=00000000 ECX=817DBFA4 EDX=817DBFE4 ESI=817DBF84 EDI=00000000 EBP=006FFF78 ESP=006FFE3C EIP=00401000 O d I S z a P c 017F:00400FFE FFFF INVALID 017F:00401000 CC INT 3 ->тук сработва bpint3 017F:00401001 01404B ADD [EAX+4B],EAX 017F:00401004 00C3 ADD BL,AL 017F:00401006 A28034467A MOV [7A463480],AL 017F:0040100B 7921 JNS 0040102E 017F:0040100D 8860E6 MOV [EAX-1A],AH ------------------------------------BEXPLOR+0FFE-------------------------------- [LordPE] Type "eb eip 68" ! -> подсказка на LordPE как да върнем ориг.код
Break due to BPINT 03 (ET=6.45 seconds)
Запишете си стойноста на ESP веднага след сработването на bpint
|
2.Отворете програмата в Peditor или LordPE и си запишете:
ImageBase : 400000
Size of Image: C4000
|
3.Наммиране на OEP и сваляне на dump.
3.1.Поставете
bpx MapViewOfFile
и стартирайте програмата
017F:0084EDEB E82456FFFF CALL KERNEL32!MapViewOfFile ->(1) 017F:0084EDF0 8BD8 MOV EBX,EAX 017F:0084EDF2 8B533C MOV EDX,[EBX+3C] 017F:0084EDF5 E83A000000 CALL 0084EE34 017F:0084EDFA 6803EE8400 PUSH 0084EE03 017F:0084EDFF FF0424 INC DWORD PTR [ESP] 017F:0084EE02 C3 RET breakpoint-a сработва
bc *
3.2.Поставете
bpx GetProcaddress -> F5
017F:0084F126 E8C952FFFF CALL KERNEL32!GetProcAddress 017F:0084F12B 8945F8 MOV [EBP-08],EAX 017F:0084F12E 837DF800 CMP DWORD PTR [EBP-08],00 017F:0084F132 0F8502010000 JNZ 0084F23A 017F:0084F138 F7450C0000FFFF TEST DWORD PTR [EBP+0C],FFFF0000 .................
bc *
3.3.Поставете
bpr esp-4 esp+4 където esp е адреса който записахме в точка 1 -> F5
чакаме повечко време(при мен около 30 сек) и попадаме в:
017F:00868B13 03C3 ADD EAX,EBX 017F:00868B15 8944241C MOV [ESP+1C],EAX -> OEP 017F:00868B19 61 POPAD 017F:00868B1A FFE0 JMP EAX -> jmp to OEP 017F:00868B1C 00F8 ADD AL,BH
записвайте си моментално стойноста в EAX. Това е така дълго чаканата OEP.
3.4.Dump
Аз предпочитам да си правя dump с помощта на IceDump
/dump 400000 C4000 d:\dump.exe
IB SI
но същият резултат може да се постигне ако се зацикли програмата на jmp eax
като стане jmp EIP и свалите dump с LordPE или PEditor и след това не
забравяте да 'килнете' процеса.
|
4.Възстановаване на Import Table
Първо нека оправим EntryPoint на dump.exe на 39B8C с помоща на LordPE.
Идва време да се възползваме и от последните два инструмента ImpRec и Revirgin.
Стартирайте защитеното exe -> bexplor.exe. В менюто с процесите на ImpRec го изберете.
Настрйте OEP да бъде 39B8C и натиснете IAT AutoSearch. След това GetImports.
ImpRec възстанови доста API-ta но и много останаха неразпознати. Натиснете Show Invalid.
Маркират се доста неразпознати. Премахнете цялата последна Fthunk. Тя е пълна с боклук.
С помощта на контексното меню -> Trace Level1 остават само 62
неразпознати. Такааа. Пак от контексното меню избираме PluginTracer(AsProtect).След него
остават само 6 неразпознати. -> Show Invalid.
Добре идва реда и на Revirgin:
Избираме пак нашето exe от списъка с процесите. OEP=439b8c (обърнете внимание) -> Feth IAT
-> IAT Resolver -> Resolve Again
Остава само една неразпозната функция но нея я е разпознал ImpRec. Вземаме резултатите от
Revirgin и оправяме неразпознатите в ImpRec функции. Fix Dump и ето имаме си работещо exe. |
Това е :)
За да оправим програмата остава само едно
да сменим на $211B8 -> E823D3FFFF с B801000000 |
Има още много да се пише по темата за разопаковането. В настоящата
статия аз показах един практичен начин за разопаковане. По ентусиазираните
могат да изчистят от exe-то двете последни секции, които са остатък
от протектора но внимавайте, в първата се съдържат ресурси. Трябва да
ги преместите от там.
Искам да изкажа още веднъж благодарностите си на Hex. Посещавайте неговия
сайт xtin.km.ru за да сте в крак с новостите при протекторите. Той отделя
доста време за да трасира кода и да следи промените в защитите. На нас
остава удоволствието да се възползваме от споделения труд и да не забравяме
да му благодарим за това( а на Солодовников и на много други да им прилошава
:)) ).
Бих искал да припомня на Shade и Stan4oo обещанието им. Очаквам статията
за новите версии на ASProtect. Но не бързам - Солодовников е сътворил
доста гадорийки :)). Но Hex не изостава :). Успех и на двамата ;P
|