【目 标】: forgot/hexer做的变形telock【工 具】:Olydbg1.1【任 务】:当然是要脱光它的衣服了:D【操作平台】:WINXP pro sp1 【作 者】:loveboom[DFCG][FCG]【相关链接】: 附件就是了【简要说明】:呵呵,前几天看看forgot在做"某护肤产品的公告",所以就进去看看,不看可能还没事,一看我的机子就重启了N次,晕呀!【详细过程】: 既然搞得我的机子重启这么多次不脱他个光光就太对不起我电脑吧,打开OD设置一下: 忽略异常里除了'Invalid or privileged instruction'和最下面的一个,其它的全钩上,不用隐身你的OD的,因为壳里"忘记?"了 还好forgot这次没有清DRX要不,可能就更难了。先在peid的userdb里加上标志先,这样下次见到好有个照应.在userdb里加上:[TElock v0.98b1<->Modifly by forgot/hexer]signature = 9C 6A 03 73 0B EB 02 75 75ep_only=false这样以后和forgot又亲了一点:) 用OD载入后停在入口: 00462862 >^\E9 99D7FFFF JMP d1.00460000 ;ep00462867 0000 ADD BYTE PTR DS:[EAX],AL 按F9出现异常了: 004607E5 8DC0 LEA EAX,EAX ; 这里异常了004607E7 74 03 JE SHORT d1.004607EC 异常后我们下断bp GetModuleHandleA,呵呵,他这时还没有检查这里有没有CC呢.下断-->shift+f9断下: 77E5AD86 > 837C24 04 00 CMP DWORD PTR SS:[ESP+4],0 ;断在这里77E5AD8B 0F84 37010000 JE kernel32.77E5AEC8 断下来了就先"还东西"(取消断点),再按alt+f9执行到用户代码: 00460E97 0BC0 OR EAX,EAX ; 回到程序了地盘咯00460E99 75 07 JNZ SHORT d1.00460EA2 回到用户代码后,按CTRL+B找85FF74也就是找: 004617E4 85FF TEST EDI,EDI ;找的就是这里004617E6 74 0F JE SHORT d1.004617F7 在4617E4处下he 4617E4(硬件访问断点),下断完毕f9运行一下又异常了. 77E53887 5E POP ESI 77E53888 C9 LEAVE 在77E53887处会异常三次,第四次到就了我们刚才下硬件断点的地方: 004617E4 85FF TEST EDI,EDI ; ntdll.ZwSetInformationThread004617E6 74 0F JE SHORT d1.004617F7004617E8 FF95 191F4000 CALL DWORD PTR SS:[EBP+401F19] 呵呵,看到了吧,壳想搞破坏了,这里我们就把edi给填0,这样的话,不用再担心有效验。同样,还东西后,走下一步,再次按ctrl+B查找61C685: 00461EF7 61 POPAD00461EF8 C685 E1314000 0>MOV BYTE PTR SS:[EBP+4031E1],000461EFF 74 24 JE SHORT d1.00461F25 ;这就是我们要找的,这里一改就会有全部的IAT 把00461EFF改成EB24也就是jmp 00461F25,改完后接f9又出现一次异常,这时先不要急着按shift+f9再按程序就跑了. 00462336 8DC0 LEA EAX,EAX ; 异常在这里00462338 EB 01 JMP SHORT d1.0046233B 异常后有两种方法可以很快到程序的OEP的.第一种 ESP的方法:异常后下断hr 12ffa4,这样中断在这里: 004623B0 874424 FC XCHG DWORD PTR SS:[ESP-4],EAX ; 这里断下004623B4 83EC 04 SUB ESP,4 断后取消断点按ctrl+f9执行到返回,然后按一次f8到了入口: 00462422 5F POP EDI00462423 C3 RETN......0044CA98 55 PUSH EBP ; OEP!0044CA99 8BEC MOV EBP,ESP0044CA9B 83C4 F0 ADD ESP,-10 第二种 段断点: 打开内存页,在下面的段上按f2: Memory map, item 18 Address=00401000 Size=0004C000 (311296.) Owner=d1 00400000 Section=.BJFnt Contains=code Type=Imag 01001004 Access=RW Initial access=RWE 然后shift+f9就到入口了: 0044CA98 55 PUSH EBP ; OEP! 0044CA99 8BEC MOV EBP,ESP 到了这里就dump+fixdump我就不再多说了,介于这个壳对我的电脑打击过于"利害",所以决定来个"脱壳机器人".哈哈!code: msgyn "设置:按ALT+O打开异常项,除倒数第一和第三项外,其它全部打钩,这个脚本只对forgot/hexer的修改版telock有用,要继续吗?" cmp $RESULT,0 je lblret var addrvar cbasevar csizegmi eip,CODEBASEmov cbase,$RESULTgmi eip,CODESIZEmov csize,$RESULT start: run lbl1: gpa "GetModuleHandleA","kernel32.dll" bp $RESULT esto lbl2: bc $RESULT rtu find eip,#85FF74??FF95# cmp $RESULT,0 je lblabort mov addr,$RESULT bphws addr,"x" lbl3: eob lbl4 run esto esto esto lbl4: bphwc addr mov edi,0 find eip,#61C685# cmp $RESULT,0 je lblabort mov addr,$RESULT add addr,8 mov [addr],#EB#lbl5: runlbl6: bprm cbase,csize esto end: bpmc cmt eip,"OEP!" msg "Script by loveboom[DFCG][FCG],Thank you for using my script!" lblret: ret lblabort: msg "出错,脚本将会结束,可能目标程序不是forgot/hexer的变形telock加的壳:(!" ret Greetz: Fly,Jingulong,yock,tDasm,David,ahao,vcasm,UFO(brother),alan(sister),all of my friends and you! By loveboom[DFCG][FCG] Email:
[email protected]
本文地址:http://com.8s8s.com/it/it22384.htm