forgot/hexer变形telock

类别:编程语言 点击:0 评论:0 推荐:
【目    标】: 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