首页
社区
课程
招聘
ASProtect V1.3B脱壳――飞速的UnPackMe
发表于: 2004-5-9 20:12 22518

ASProtect V1.3B脱壳――飞速的UnPackMe

fly 活跃值
85
2004-5-9 20:12
22518

                     
         
               
【作者声明】:只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
      
【调试环境】:WinXP、Ollydbg1.10B、PEiD、LordPE、ImportREC
      
―――――――――――――――――――――――――――――――――
【脱壳过程】:
               
         
      
ASProtect无疑是越来越厉害了,自ASProtect V1.23以后就不再公开发布,只对注册用户发送了,这样使得ASProtect有点神秘的味道。前几天据说ASProtect已经升级为V1.4了,可惜即使是ASProtect V1.3B网上也没有公开的。
      
飞速 兄用ASProtect V1.3B加壳的这个Win98的记事本很早就放到坛子上了,jingulong 兄曾成功脱壳过。我在学习jingulong 兄的脱壳文件基础上写下这点脱壳笔记,其中有些是猜测的,欢迎各位指点。
      
为何选用记事本程序作为UnPackMe?呵呵,当然是为了简单啦!NotePad.EXE比较熟悉,没用SDK没有暗桩,大大降低了脱壳难度;所以这个UnPackMe可以算是最简单的ASProtect V1.3B壳保护程序。
      
―――――――――――――――――――――――――――――――――
一、Stolen Code & OEP
      
      
老规矩:用IsDebug 1.4插件去掉Ollydbg的调试器标志。忽略除了“内存访问异常”之外的所有其他异常选项。
      
      

  
00401000     68 01D04000         push Notepad.0040D001//进入OD后停在这
00401005     E8 01000000         call Notepad.0040100B
0040100A     C3                  retn
00959CB5     3100                xor dword ptr ds:[eax],eax//ASProtect最后1次典型异常
00959CB7     64:8F05 00000000    pop dword ptr fs:[0]
00959CBE     58                  pop eax
00959CBF     833D C4E79500 00    cmp dword ptr ds:[95E7C4],0
00959CC6     74 14               je short 00959CDC
00959CC8     6A 0C               push 0C
00959CCA     B9 C4E79500         mov ecx,95E7C4
00959CCF     8D45 F8             lea eax,dword ptr ss:[ebp-8]
00959CD2     BA 04000000         mov edx,4
00959CD7     E8 6075FFFF         call 0095123C
00959CDC     FF75 FC             push dword ptr ss:[ebp-4]
00959CDF     FF75 F8             push dword ptr ss:[ebp-8]
00959CE2     8B45 F4             mov eax,dword ptr ss:[ebp-C]
00959CE5     8338 00             cmp dword ptr ds:[eax],0
00959CE8     74 02               je short 00959CEC
00959CEA     FF30                push dword ptr ds:[eax]
00959CEC     FF75 F0             push dword ptr ss:[ebp-10]
00959CEF     FF75 EC             push dword ptr ss:[ebp-14]
00959CF2     C3                  retn//此处下断,Shift+F9,断在这!返回 0097724C
0097724C     B8 533E765B         mov eax,5B763E53
00977251     E8 05000000         call 0097725B
0012FF3C    00400000  UnPackMe.00400000
0012FF40    C51510FB
0012FF44    0012FFA4
      
0097734A     EB 44               jmp short 00977390//中断在这
009773ED     61                  popad//Stolen Code 开始
009773EE     F3:                 prefix rep:
009773EF     EB 02               jmp short 009773F3
00977492     892C24              mov dword ptr ss:[esp],ebp//push EBP ★
      
009774A3     8BEC                mov ebp,esp ★
      
009774B3     83EC 44             sub esp,44 ★
      
0097750E     893424              mov dword ptr ss:[esp],esi
00977511     FF35 D5104000       push dword ptr ds:[4010D5]//Push ESI ★
00977517     8F05 1F759700       pop dword ptr ds:[97751F]; 004063E4
0097751D     FF15 48119700       call dword ptr ds:[971148]//Call dword ptr ds:[<&KERNEL32.GetCommandLineA>]★
跟进这个CALL看看:
00971154     A1 1466EB77         mov eax,dword ptr ds:[77EB6614]
00971159     F2:                 prefix repne:
0097115A     EB 01               jmp short 0097115D
0097115D     68 3DC9E577         push 77E5C93D
00971162     C3                  retn//返回 77E5C93D
77E5C938     A1 1466EB77         mov eax,dword ptr ds:[77EB6614]
77E5C93D     C3                  retn
00977531     8BF0                mov esi,eax★
      
00977541     8A00                mov al,byte ptr ds:[eax]★
      
00977551     3C 22               cmp al,22★
      
00977556     9C                  pushfd//Stolen Code 完毕
00977557     65:EB 01            jmp short 0097755B
0097771C     8947 00             mov dword ptr ds:[edi],eax; UnPackMe.004010DF
0097771F     58                  pop eax
00977720     5F                  pop edi
00977721     9D                  popfd
00977722     36:EB 01            jmp short 00977726
      
00977726     FF35 7B759700       push dword ptr ds:[97757B]; UnPackMe.004010DF
0097772C     68 4C739700         push 97734C
00977731     C3                  retn
      
0097734F     51                  push ecx
00977350     57                  push edi
00977351     9C                  pushfd
00977352     FC                  cld
00977353     BF 90739700         mov edi,977390
00977358     B9 5E280000         mov ecx,285E
0097735D     F3:AA               rep stos byte ptr es:[edi]//轻松战场
0097735F     9D                  popfd
00977360     5F                  pop edi
00977361     59                  pop ecx
00977362     C3                  retn//飞向光明之巅!:-)   返回 004010DF
004010DF     75 1B               jnz short UnPackMe.004010FC//伪OEP
004010E1     56                  push esi
004010E2     FF15 9C119700       call dword ptr ds:[97119C]
004010E8     8BF0                mov esi,eax
004010EA     8A00                mov al,byte ptr ds:[eax]
004010EC     84C0                test al,al
004010EE     74 04               je short UnPackMe.004010F4
004010F0     3C 22               cmp al,22
004010F2     75 ED               jnz short UnPackMe.004010E1
004010F4     803E 22             cmp byte ptr ds:[esi],22
004010F7     75 15               jnz short UnPackMe.0040110E
004010F9     46                  inc esi
004010FA     EB 12               jmp short UnPackMe.0040110E
004010FC     3C 20               cmp al,20
004010FE     7E 0E               jle short UnPackMe.0040110E
00401100     56                  push esi
00401101     FF15 54129700       call dword ptr ds:[971254]
push ebp
mov ebp,esp
sub esp,44
push esi
call dword ptr ds:[<&KERNEL32.GetCommandLineA>]
mov esi,eax
mov al,byte ptr ds:[eax]
cmp al,22
009575E0     8B07                mov eax,dword ptr ds:[edi]
009575E2     8B18                mov ebx,dword ptr ds:[eax]
009575E4     8307 04             add dword ptr ds:[edi],4
009575E7     8B07                mov eax,dword ptr ds:[edi]
009575E9     8A00                mov al,byte ptr ds:[eax]
009575EB     884424 1E           mov byte ptr ss:[esp+1E],al
009575EF     FF07                inc dword ptr ds:[edi]
009575F1     85DB                test ebx,ebx
009575F3     0F85 99000000       jnz 00957692
009575F9     EB 01               jmp short 009575FC//IAT处理完毕,在009575FC处下断
00957692     331D 64E79500       xor ebx,dword ptr ds:[95E764]
00957698     031C24              add ebx,dword ptr ss:[esp]; UnPackMe.00400000
0095769B     EB 01               jmp short 0095769E
      
0095769E     8B07                mov eax,dword ptr ds:[edi]
009576A0     8A00                mov al,byte ptr ds:[eax]
009576A2     FF07                inc dword ptr ds:[edi]
009576A4     33D2                xor edx,edx
009576A6     8AD0                mov dl,al
009576A8     8B4424 2C           mov eax,dword ptr ss:[esp+2C]
009576AC     E8 E3F3FFFF         call 00956A94
009576B1     894424 30           mov dword ptr ss:[esp+30],eax
009576B5     8B07                mov eax,dword ptr ds:[edi]
009576B7     8A00                mov al,byte ptr ds:[eax]
009576B9     FF07                inc dword ptr ds:[edi]
009576BB     84C0                test al,al//根据AL值分别进行处理
009576BD     75 44               jnz short 00957703
009576BF     EB 01               jmp short 009576C2

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 10
支持
分享
最新回复 (38)
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
2
UnPackMe-飞速-[ASProtect V1.3]

2004-5-9 20:14
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
3
UnPacked-UnPackMe[ASProtect V1.3]

2004-5-9 20:16
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
强啊:)

感觉Aspr这种不公开试用版的做法并不太利于他的进步,没有考验就没有改进
2004-5-9 20:34
0
雪    币: 303
活跃值: (466)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
学习+ING
2004-5-9 20:44
0
雪    币: 208
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
果然高深!
希望在10年内看懂。
2004-5-9 20:50
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
7
最初由 yimotep 发布
果然高深!
希望在10年内看懂。


没那么严重的。
这个只是最简单的ASProtect V1.3B,很多厉害招数都没用
2004-5-9 21:16
0
雪    币: 239
活跃值: (220)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
8
强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!强!
2004-5-9 21:37
0
雪    币: 227
活跃值: (160)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
9
祝贺第一篇aspr1.3b脱文公开面世,dump下慢慢学习。
期待再来一篇修复FF代码的
2004-5-9 22:32
0
雪    币: 228
活跃值: (165)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
好样的!

to:Fly

尽快和我联系,你的QQ老不上线.mail地址忘记了!

我的,yock_99@163.com
2004-5-9 23:07
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
11
可以给我留言
[email]fly4099@sohu.com[/email]
2004-5-10 00:35
0
雪    币: 291
活跃值: (400)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
12
要当个真正的cracker,就要把自己搞的BT一点,例如:
去购买Asprotect最新版本,然后给程序加壳,在脱他
这样保证大大进步,而且Aspr作者要是知道你买他的壳是为了研究,肯定死都不卖:p
2004-5-10 01:31
0
雪    币: 124
活跃值: (107)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
学习+收藏,哪位有aspr2.0提供给fly 兄学习吧.我们将看到更美丽的文章:)
2004-5-10 07:05
0
雪    币: 690
活跃值: (1826)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
14
果然是版主,厉害。
2004-5-10 15:20
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
牛!
2004-5-10 15:22
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
16
最初由 草原猎豹 发布
要当个真正的cracker,就要把自己搞的BT一点,例如:
去购买Asprotect最新版本,然后给程序加壳,在脱他
这样保证大大进步,而且Aspr作者要是知道你买他的壳是为了研究,肯定死都不卖:p


前提:银子  :D
2004-5-10 15:26
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
17
晕倒,论坛恢复后把附件也弄乱了

重新上传修复2个附件:飞速-UnPackMe[ASProtect V1.3B].rar和UnPacked-UnPackMe[ASProtect V1.3B].rar
2004-5-10 23:48
0
雪    币: 221
活跃值: (100)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
好!学习中!
2004-5-11 14:10
0
雪    币: 223
活跃值: (106)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
19
照着画了好多遍,今天终于勉强脱出来了:(
2004-5-26 12:19
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
20
最初由 temerata 发布
照着画了好多遍,今天终于勉强脱出来了:(


不错,呵呵。毅力很重要呀  :D
2004-5-26 12:46
0
雪    币: 223
活跃值: (106)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
21
谢谢老大鼓励!:D
2004-5-26 12:59
0
雪    币: 239
活跃值: (59)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
强呀!~~

希望我有一天!~~~~
2004-6-4 04:00
0
雪    币: 253
活跃值: (250)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
23
学习......
2004-6-4 15:28
0
雪    币: 223
活跃值: (106)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
24
最初由 fly 发布

……
在原程序中找一段可用的空间放IAT,取代跳转到壳中的地址,这样就可以Dump下来了。jingulong选择存放IAT的地方是从40C000开始的,我也选择这里吧。……


老大,如果Dump出来的文件没有足够的空间存放IAT怎么办?:(
2004-6-23 19:43
0
雪    币: 556
活跃值: (2303)
能力值: ( LV9,RANK:2130 )
在线值:
发帖
回帖
粉丝
25
你不会分泌一个嘛,增加段,或VirtualAlloc
2004-6-23 20:06
0
游客
登录 | 注册 方可回帖
返回
//