序:前些日子在论坛见有人求助脱VBOX的壳,自己下载下来看了看,又参考了fly兄的脱文,文中提到BP GetProcAddress和BP FreeLibary两处.后经自己调试发现可利用VBOX的异常下断点,现简述如下:
一、破解目标:MINITAB 14.13 Release
二、破解工具:OllyDbg v1.10,ImportREC 1.6 Final
三、破解人:DarkBull
四、破解过程:
1.用OllyDbg载入,提示该程序是自解压或自修改程序,运行后发现加载vboxt430模块,因此判断是VBOX4.30保护的。
2.当出现VBOX保护画面时,点击“TRY”按钮,停止在02402FA1处,提示INT3异常,在EIP下条指令处下断点,按Shift+F9后拦截成功,再按F8执行到如下代码处:
070054AE > 6A 04 PUSH 4
........
07005AB2 E9 2118000>JMP vboxt430.0700610C ;跳到出口
........
070060BB ^ E9 DFE5FFF>JMP vboxt430.070054AE ;大循环
在出口处下断点,拦截成功,执行到如下代码处:
0223045A 53 PUSH EBX
0223045B 53 PUSH EBX
0223045C FFD7 CALL NEAR EDI ;进入
继续执行到如下代码处:
0225010D FF75 F8 PUSH DWORD PTR SS:[EBP-8]
02250110 FF75 FC PUSH DWORD PTR SS:[EBP-4]
02250113 FF75 08 PUSH DWORD PTR SS:[EBP+8]
02250116 E8 0800000>CALL 02250123 ;进入
继续....
02250278 52 PUSH EDX
02250279 53 PUSH EBX
0225027A E8 1402000>CALL 02250493 ;进入
希望就在眼前:
02250521 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8]
02250524 8B42 14 MOV EAX,DWORD PTR DS:[EDX+14]
02250527 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX
0225052A 8B5D F0 MOV EBX,DWORD PTR SS:[EBP-10]
0225052D - FFE3 JMP NEAR EBX ;EBX==》OEP
3.用OllyDump插件把进程DUMP下来,再用ImportREC附加于活动进程Mtb14.exe,输入OEP地址,点击“IAT AutoSearch”,再点击“Get Imports”,发现有不可用的引入表项,用Trace3可修复引入表,直到出现:
------------------------------------------------------------------------------------------
Current imports:
2E (decimal:46) valid module(s) (added: +A (decimal:+10))
1AF7 (decimal:6903) imported function(s).
(0 (decimal:0) unresolved pointer(s)) (added: -DC (decimal:-220))
Congratulations! There is no more invalid pointer, now the question is: Will it work? :-)
再修复DUMP下来的文件,大功告成。
*******************************************************************
:p不好意思,浪费大家时间了, 我只想提供一点点思路,在有些加壳的软件中,当不知如何下断点的时候,可利用异常自动下断......--聪明反被聪明误--
)
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课