首页
社区
课程
招聘
tElock XXX 之forgot、heXer修改版脱壳
发表于: 2004-7-4 21:02 8914

tElock XXX 之forgot、heXer修改版脱壳

fly 活跃值
85
2004-7-4 21:02
8914

            
           
            
下载页面:  http://bbs.pediy.com/showthread.php?s=&threadid=2440
软件大小:  65 KB
            
【软件简介】:forgot、heXer的tElock修改版
            
【作者声明】:只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
            
【调试环境】:WinXP、Ollydbg1.10、PEiD、LordPE、ImportREC
            
―――――――――――――――――――――――――――――――――
【脱壳过程】:
         
      
昨天黄昏,有人自4楼坠落,刹那间殒命。
成功、失败、喜悦、悲伤、爱情、事业……人世间的一切都与他无关了。
不说了,窗外夏雨正浓,脱个壳吧。
―――――――――――――――――――――――――――――――――
一、消除ZwSetInformationThread反跟踪
            
            
设置Ollydbg忽略除了“INT3中断”之外的所有其它异常选项。老规矩:用IsDebug 1.4插件去掉Ollydbg的调试器标志。
注意:不要在程序中下INT3普通断点,可以下硬件断点,否则forgot会让你ReBoot。
         

  
00430862     E9 99D7FFFF         jmp xxx.0042E000//进入OD后停在这
 
0042E0E1     CC                  int3//第1次异常
0042EC81     CC                  int3//第1次异常
 
push 0
push 0
push 11
push eax
     
0042F7DE     8BBD A7204000       mov edi,dword ptr ss:[ebp+4020A7]
0042F7E4     85FF                test edi,edi
0042F7E6     74 0F               je short xxx.0042F7F7//改为:JMP 0042F7F7 ★
0042F7E8     FF95 191F4000       call dword ptr ss:[ebp+401F19]
0042F7EE     6A 00               push 0//找到这里
0042F7F0     6A 00               push 0
0042F7F2     6A 11               push 11
0042F7F4     50                  push eax
0042F7F5     FFD7                call edi//ZwSetInformationThread
 
push 30
push ebx

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 8
支持
分享
最新回复 (11)
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
2
2004-7-4 21:05
0
雪    币: 109
活跃值: (36)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
3
支持!
2004-7-4 21:08
0
雪    币: 4925
活跃值: (2378)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
4
UP
2004-7-4 21:23
0
雪    币: 446
活跃值: (758)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
5
支持,
我一直以为00404c94是入口,
难怪会非法~!
2004-7-4 21:59
0
雪    币: 303
活跃值: (476)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
请教FLY兄弟:怎么知道是用ZwSetInformationThread ,Anti的呢?
多谢
2004-7-4 22:03
0
雪    币: 446
活跃值: (758)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
7
我来说吧,用OD载入后略去除Int 3外所有异常,
Shift+F9 3次后会断在这里
0042ED5A    90              NOP
0042ED5B    66:81C6 B7B9    ADD SI,0B9B7
堆栈
0012FF98   0012FFE0  指针到下一个 SEH 记录
0012FF9C   0042ED25  SE 句柄
然后bp 42ED25 Shift+F9
中断后取消断点,断在这里
0042ED25    8B6424 08       MOV ESP,DWORD PTR SS:[ESP+8]
0042ED29    8B6C24 08       MOV EBP,DWORD PTR SS:[ESP+8]
0042ED2D    8D85 66150000   LEA EAX,DWORD PTR SS:[EBP+1566]
0042ED33    50              PUSH EAX
F8几次后来到这
0042F637    64:8F05 0000000>POP DWORD PTR FS:[0]
0042F63E    83C4 04         ADD ESP,4
0042F641    5D              POP EBP
0042F642    EB 00           JMP SHORT xxx.0042F644
0042F644    8BDD            MOV EBX,EBP
0042F646    81ED D1104000   SUB EBP,xxx.004010D1
0042F64C    9C              PUSHFD
0042F64D    60              PUSHAD
0042F64E    8D85 801E4000   LEA EAX,DWORD PTR SS:[EBP+401E80]
用Esp定律,来到这里
0042F745    9D              POPFD
0042F746    8DBD 7B154000   LEA EDI,DWORD PTR SS:[EBP+40157B]
0042F74C    8BB5 C2384000   MOV ESI,DWORD PTR SS:[EBP+4038C2]
0042F752    AC              LODS BYTE PTR DS:[ESI]
0042F753    04 34           ADD AL,34
0042F755    0F84 310A0000   JE xxx.0043018C
注意了,现在中断被改了,不能再F7,F8了
先取消以前的硬件断点,
然后在0042F746    8DBD 7B154000   LEA EDI,DWORD PTR SS:[EBP+40157B]
这行下硬件执行断点,F9
F4一行一行走,到这里
0042F7B9    6A 08           PUSH 8
0042F7BB    59              POP ECX
0042F7BC    0F85 3D060000   JNZ xxx.0042FDFF
0042F7C2    74 19           JE SHORT xxx.0042F7DD
再往下就是
0042F7DD    60              PUSHAD
0042F7DE    8BBD A7204000   MOV EDI,DWORD PTR SS:[EBP+4020A7]//这里就可以看到了,
呵呵,US UnpackMe_5的经验,这个函数执行了,
在Code断下内存断点就会出错
0042F7E4    85FF            TEST EDI,EDI
0042F7E6    74 0F           JE SHORT xxx.0042F7F7
0042F7E8    FF95 191F4000   CALL DWORD PTR SS:[EBP+401F19]
0042F7EE    6A 00           PUSH 0
0042F7F0    6A 00           PUSH 0
0042F7F2    6A 11           PUSH 11
0042F7F4    50              PUSH EAX
0042F7F5    FFD7            CALL EDI
0042F7F7    61              POPAD
后面的偶就不说了~!
2004-7-4 22:16
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
8
最初由 liuyilin 发布
请教FLY兄弟:怎么知道是用ZwSetInformationThread ,Anti的呢?
多谢


有些程序利用ZwSetInformationThread来对付OD
forgot以前的eXcalibur就用过EnableWindow和ZwSetInformationThread
你可以BP ZwSetInformationThread
2004-7-4 22:25
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
9
:D :D :D 看来int1和drx不能留下活口
2004-7-5 09:19
0
雪    币: 446
活跃值: (758)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
10
那你写个XPR得了~!:D
2004-7-5 09:22
0
雪    币: 303
活跃值: (476)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
最初由 fly 发布



有些程序利用ZwSetInformationThread来对付OD
forgot以前的eXcalibur就用过EnableWindow和ZwSetInformationThread
你可以BP ZwSetInformationThread

多谢了!!
2004-7-5 09:25
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
12
最初由 pll823 发布
forgot是怎么修改telock的?难道你搞到了源码?

当然没有,mixi教的
2004-7-5 10:08
0
游客
登录 | 注册 方可回帖
返回
//