首页
社区
课程
招聘
[旧帖] [原创](初学)脱了个有点BT的壳。。。。可能火星了。。。 0.00雪花
发表于: 2009-2-28 12:52 3560

[旧帖] [原创](初学)脱了个有点BT的壳。。。。可能火星了。。。 0.00雪花

2009-2-28 12:52
3560
大家好,我是新来的,请大牛们多多指教!
前几天学了点脱壳技术,偶然发现“注册机编写器”里面带有这个小软件可以拿来练手,我便拿来试着脱下,不想这个壳比ASPack UPX之类的壳BT多了(因为我初学,也不知道是什么壳,PEID0.95查了“什么也没找到*”,有高手知道望告知谢谢~~~),我脱了一个小时才懂得了大概的技巧,原来象往常一样按F8 F7是没有用的。。。。下面我帖一下我的脱壳过程,高手们看了请不要笑话哈~~~

OD载入,Alt+E 打开模块列表,双击选择ntdll.dll,输入命令 bp 7C9237BD (可能不同的机子地址不一样)在这里下断点

7C9237BD    FFD1            CALL NEAR ECX

然后按 F9 运行/断下 20 次(囧Rz。。。= =!!),第 21 次按 F7 进入,然后跟着走到这里就是 OEP 了

00E41E1E  ^\74 E3           JE SHORT 00E41E03
00E41E20    8901            MOV DWORD PTR DS:[ECX],EAX
00E41E22    03C3            ADD EAX,EBX
00E41E24    894424 1C       MOV DWORD PTR SS:[ESP+1C],EAX
00E41E28    61              POPAD
00E41E29  - FFE0            JMP NEAR EAX                             ; 例子三.00401A17

然后右键脱壳就OK了,这个壳囧吧。。。。
因为我发帖不够10帖,不能带附件,所以有兴趣的朋友请到我的网盘下载:
tzwsoho.ys168.com(脱壳+破解文件夹里面)
壳是脱了,但注册方法还在研究当中(其实代码是知道了的,不过因为我汇编太菜没看懂

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 123
活跃值: (95)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
没看清楚 , LZ在 ntdll.dll里面下的断点是断的什么 ?最后的 OEP代码能不能贴出来看看 .
2009-2-28 15:19
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不知道楼主的  NTDLL断点是什么。。。 也不知道楼主的思路怎么来的。。。 能解释一下么?
2009-2-28 19:09
0
雪    币: 208
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
LS两位不好意思我没说清楚。。。其实是因为我脱壳脱了近两个小时还没发现有什么进展,心情有点郁闷,在第N次OD载入时不小心在下面这里按了F8。。。。。

0040B001    60              PUSHAD
0040B002    E8 1B000000     CALL 例子三.0040B022        ;在这里应该F7进入的,我按错了F8。。。
0040B007  - E9 FC8DB50F     JMP 0FF63E08

于是OD跳转到了这里(这里更正下,应该是19次,不是20次)

7C92EAF0    8B1C24          MOV EBX,DWORD PTR SS:[ESP]
7C92EAF3    51              PUSH ECX
7C92EAF4    53              PUSH EBX
7C92EAF5    E8 C78C0200     CALL ntdll.7C9577C1
7C92EAFA    0AC0            OR AL,AL
7C92EAFC    74 0C           JE SHORT ntdll.7C92EB0A
7C92EAFE    5B              POP EBX
7C92EAFF    59              POP ECX
7C92EB00    6A 00           PUSH 0
7C92EB02    51              PUSH ECX
7C92EB03    E8 11EBFFFF     CALL ntdll.ZwContinue        ;我在这里设断,第20次在这里跟入
7C92EB08    EB 0B           JMP SHORT ntdll.7C92EB15
7C92EB0A    5B              POP EBX
7C92EB0B    59              POP ECX
7C92EB0C    6A 00           PUSH 0
7C92EB0E    51              PUSH ECX
7C92EB0F    53              PUSH EBX
7C92EB10    E8 3DF7FFFF     CALL ntdll.ZwRaiseException

然后我试着按了F9 N次,按第N+1次时主窗口居然就出现了!
那么我就重新载入证明N=19(应该是19的,我更正下),又一次重载后第20次我用F7跟入,到了下面

7C92D619 >  B8 20000000     MOV EAX,20
7C92D61E    BA 0003FE7F     MOV EDX,7FFE0300
7C92D623    FF12            CALL DWORD PTR DS:[EDX]        ; ntdll.KiFastSystemCall 这里也用F7跟入
7C92D625    C2 0800         RETN 8

然后再转到这里

7C92EB8B >  8BD4            MOV EDX,ESP
7C92EB8D    0F34            SYSENTER                        ;这里按F7或F8后返回
7C92EB8F    90              NOP
7C92EB90    90              NOP
7C92EB91    90              NOP
7C92EB92    90              NOP
7C92EB93    90              NOP
7C92EB94 >  C3              RETN

又返回到这里

7C92EAF0    8B1C24          MOV EBX,DWORD PTR SS:[ESP]
7C92EAF3    51              PUSH ECX
7C92EAF4    53              PUSH EBX
7C92EAF5    E8 C78C0200     CALL ntdll.7C9577C1                ;这次在这里F7跟入
7C92EAFA    0AC0            OR AL,AL
7C92EAFC    74 0C           JE SHORT ntdll.7C92EB0A
7C92EAFE    5B              POP EBX
7C92EAFF    59              POP ECX
7C92EB00    6A 00           PUSH 0
7C92EB02    51              PUSH ECX
7C92EB03    E8 11EBFFFF     CALL ntdll.ZwContinue

然后可以一直按F8到这里

7C957855    50              PUSH EAX
7C957856    FF75 0C         PUSH DWORD PTR SS:[EBP+C]
7C957859    53              PUSH EBX
7C95785A    56              PUSH ESI
7C95785B    E8 F3BEFCFF     CALL ntdll.7C923753                ;这里按F7跟入
7C957860    F605 5AC3997C 8>TEST BYTE PTR DS:[7C99C35A],80
7C957867    8BF8            MOV EDI,EAX
7C957869    0F85 16720100   JNZ ntdll.7C96EA85
7C95786F    395D 08         CMP DWORD PTR SS:[EBP+8],EBX
7C957872    0F84 1B720100   JE ntdll.7C96EA93
7C957878    8BC7            MOV EAX,EDI
7C95787A    33C9            XOR ECX,ECX
7C95787C    2BC1            SUB EAX,ECX

然后到了这里

7C923772    FF7424 20       PUSH DWORD PTR SS:[ESP+20]
7C923776    FF7424 20       PUSH DWORD PTR SS:[ESP+20]
7C92377A    FF7424 20       PUSH DWORD PTR SS:[ESP+20]
7C92377E    FF7424 20       PUSH DWORD PTR SS:[ESP+20]
7C923782    FF7424 20       PUSH DWORD PTR SS:[ESP+20]
7C923786    E8 0E000000     CALL ntdll.7C923799                 ;继续F7跟入
7C92378B    5F              POP EDI
7C92378C    5E              POP ESI
7C92378D    5B              POP EBX
7C92378E    C2 1400         RETN 14

7C923799    55              PUSH EBP
7C92379A    8BEC            MOV EBP,ESP
7C92379C    FF75 0C         PUSH DWORD PTR SS:[EBP+C]
7C92379F    52              PUSH EDX
7C9237A0    64:FF35 0000000>PUSH DWORD PTR FS:[0]
7C9237A7    64:8925 0000000>MOV DWORD PTR FS:[0],ESP
7C9237AE    FF75 14         PUSH DWORD PTR SS:[EBP+14]
7C9237B1    FF75 10         PUSH DWORD PTR SS:[EBP+10]
7C9237B4    FF75 0C         PUSH DWORD PTR SS:[EBP+C]
7C9237B7    FF75 08         PUSH DWORD PTR SS:[EBP+8]
7C9237BA    8B4D 18         MOV ECX,DWORD PTR SS:[EBP+18]
7C9237BD    FFD1            CALL ECX                ;F7跟入
7C9237BF    64:8B25 0000000>MOV ESP,DWORD PTR FS:[0]
7C9237C6    64:8F05 0000000>POP DWORD PTR FS:[0]
7C9237CD    8BE5            MOV ESP,EBP
7C9237CF    5D              POP EBP
7C9237D0    C2 1400         RETN 14

然后一直F8到下面

00E41EA6    3117            XOR DWORD PTR DS:[EDI],EDX
00E41EA8    4E              DEC ESI
00E41EA9    F8              CLC
00E41EAA    47              INC EDI
00E41EAB    47              INC EDI
00E41EAC    47              INC EDI
00E41EAD    47              INC EDI
00E41EAE    83C8 A6         OR EAX,FFFFFFA6
00E41EB1    81C2 1D387F70   ADD EDX,707F381D
00E41EB7    8BC0            MOV EAX,EAX
00E41EB9    48              DEC EAX
00E41EBA    51              PUSH ECX
00E41EBB    8BCE            MOV ECX,ESI
00E41EBD    E3 03           JECXZ SHORT 00E41EC2
00E41EBF    59              POP ECX
00E41EC0  ^ EB E4           JMP SHORT 00E41EA6
00E41EC2    59              POP ECX                ;不要在这里按F4,只能跟着按F8兜圈子
00E41EC3    61              POPAD
00E41EC4    03C0            ADD EAX,EAX
00E41EC6    C3              RETN

然后兜了3、4圈后retn到了这里

00E41E14    5B              POP EBX                                  ; 例子三.00400000
00E41E15    58              POP EAX
00E41E16    05 0AAC04D6     ADD EAX,D604AC0A
00E41E1B    5C              POP ESP
00E41E1C    0BC9            OR ECX,ECX
00E41E1E  ^ 74 E3           JE SHORT 00E41E03
00E41E20    8901            MOV DWORD PTR DS:[ECX],EAX
00E41E22    03C3            ADD EAX,EBX
00E41E24    894424 1C       MOV DWORD PTR SS:[ESP+1C],EAX
00E41E28    61              POPAD
00E41E29    FFE0            JMP EAX                ;这里便是OEP了

= =!!综上所述,整个过程非常误打误撞。。。有点不好意思。。。。。。。。
2009-3-1 17:23
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我下来查壳是提示ASProtect 1.2 / 1.2c-> Alexey Solodovnikov,用stripper脱壳机脱壳后可正常运行。
2009-3-2 20:55
0
游客
登录 | 注册 方可回帖
返回
//