首页
社区
课程
招聘
以壳解壳――ASProtect V1.23RC4的OEP Stolen Code简便解决方案
发表于: 2004-5-13 17:38 27668

以壳解壳――ASProtect V1.23RC4的OEP Stolen Code简便解决方案

fly 活跃值
85
2004-5-13 17:38
27668

            
            
            
下载页面:http://www.superdown.com/soft/17405.htm
软件大小:4250KB
软件语言:英文
软件类别:国外软件 / 共享版 / 编程开发
运行环境:Win9x/WinNT/2000/ME/XP
加入时间:2004-4-16 20:08:04
软件评级:***
开 发 商:http://www.sicomponents.com/rbldr.html
软件介绍:自称是自Borland Resource WorkShop 4.5后的长久期待>可以直接打开资源文件,可以导入.exe文件并可选择指定的资源以便于修改,修改后只能存为资源格式,如果直接打开表但可以类似exescope一样修改,如果是导入的话,只能看到16进制码。
            
【作者声明】:只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
            
【调试环境】:WinXP、Ollydbg1.10B、PEiD、LordPE、AsprDbgr、ImportREC 1.42+
            
―――――――――――――――――――――――――――――――――
【脱壳过程】:
                     
            
                     
如今的猛壳们把Stolen Code越做越变态,虽然大部分Stolen Code都可以分析出来,但是有点费时间。这次以Resource Builder 2.1.0.3为例来演示一种ASProtect 1.23RC4壳的Stolen Code简便解决方案。这个方法我曾经见过飞速兄用过。在壳把所有的代码解压之后、处理Stolen Code之前,把进程Dump出来,补上那段壳代码,模仿构造当时的堆栈和寄存器值环境,这样就由壳自己来解决Stolen Code的问题啦。推而广之,这个Stolen Code简便解决方案也适用于某些其他壳。
            
―――――――――――――――――――――――――――――――――
一、Pre-Dip:用自己的名字注册
            
            
老规矩:用IsDebug 1.4插件去掉Ollydbg的调试器标志。
因为程序的rbcore.dll和sicmplr.dll也是用了ASProtect加壳,所以我们先忽略所有的异常选项,当Ollydbg弹出“是压缩代码――要继续进行分析吗?”,点“否”。接着设置Ollydbg忽略除了“内存访问异常”之外的所有其它异常选项。
      

      
00401000     68 01A06E00          push Resbldr2.006EA001//进入OD后停在这
00401005     E8 01000000          call Resbldr2.0040100B
0040100A     C3                   retn
0012FF3C    0012FF44  指针到下一个 SEH 记录
0012FF40    012B465C  SE 句柄
0012FF44    0012FFE0  指针到下一个 SEH 记录
0012FF48    012B4C49  SE 句柄
0012FF4C    0012FF90
0012FF50    012A0000
0012FF54    00D00000
0012FF58    012B4138
0012FF5C    012D33BC  ASCII "8wh3JAAQjOI="//硬盘指纹
012B46A5     3100                 xor dword ptr ds:[eax],eax//异常,第2次看见硬盘指纹
012B46A7     EB 01                jmp short 012B46AA
00578654     55                   push ebp
00578655     8BEC                 mov ebp,esp
00578657     8B45 08              mov eax,dword ptr ss:[ebp+8]
0057865A     85C0                 test eax,eax
0057865C     74 0C                je short Resbldr2.0057866A
0057865E     8038 00              cmp byte ptr ds:[eax],0
00578661     74 07                je short Resbldr2.0057866A
00578663     C605 90046200 01     mov byte ptr ds:[620490],1
0057866A     8B15 84046200        mov edx,dword ptr ds:[620484]
00578670     8915 80046200        mov dword ptr ds:[620480],edx
00578676     A3 84046200          mov dword ptr ds:[620484],eax//注册名
0057867B     5D                   pop ebp
0057867C     C2 0400              retn 4
012B39EC     3100                 xor dword ptr ds:[eax],eax//ASProtect最后1次典型异常处
012B39EE     64:8F05 00000000     pop dword ptr fs:[0]
012B39F5     58                   pop eax
012B39F6     833D B07E2B01 00     cmp dword ptr ds:[12B7EB0],0
012B39FD     74 14                je short 012B3A13
012B39FF     6A 0C                push 0C
012B3A01     B9 B07E2B01          mov ecx,12B7EB0
012B3A06     8D45 F8              lea eax,dword ptr ss:[ebp-8]
012B3A09     BA 04000000          mov edx,4
012B3A0E     E8 2DD1FFFF          call 012B0B40
012B3A13     FF75 FC              push dword ptr ss:[ebp-4]
012B3A16     FF75 F8              push dword ptr ss:[ebp-8]
012B3A19     8B45 F4              mov eax,dword ptr ss:[ebp-C]
012B3A1C     8338 00              cmp dword ptr ds:[eax],0
012B3A1F     74 02                je short 012B3A23
012B3A21     FF30                 push dword ptr ds:[eax]
012B3A23     FF75 F0              push dword ptr ss:[ebp-10]
012B3A26     FF75 EC              push dword ptr ss:[ebp-14]
012B3A29     C3                   retn//此处下断,Shift+F9断下
0012FF5C    012CE9DC
0012FF60    00400000  ASCII "MZP"
0012FF64    C244FCB6
0012FF68    0012FFA4//注意这里 ★
012C6A41     EB 44                jmp short 012C6A87//断在这里
012C6A43     EB 01                jmp short 012C6A46
012C6A46     51                   push ecx
012C6A47     57                   push edi
012C6A48     9C                   pushfd
012C6A49     FC                   cld
012C6A4A     BF 00000000          mov edi,0
012C6A4F     B9 00000000          mov ecx,0
012C6A54     F3:AA                rep stos byte ptr es:[edi]//这里下断
012C6A56     9D                   popfd
012C6A57     5F                   pop edi
012C6A58     59                   pop ecx
012C6A59     C3                   retn
012C6A87     03C3                 add eax,ebx
012C6A89     BB 8B070000          mov ebx,78B//注意这个值 ★
012C6A8E     0BDB                 or ebx,ebx
012C6A90     75 07                jnz short 012C6A99
012C6A99     E8 00000000          call 012C6A9E
012C6A9E     5D                   pop ebp
012C6A9F     81ED 4DE14B00        sub ebp,4BE14D
012C6AA5     8D85 F2E04B00        lea eax,dword ptr ss:[ebp+4BE0F2]
012C6AAB     8D8D 94E14B00        lea ecx,dword ptr ss:[ebp+4BE194]
012C6AB1     03CB                 add ecx,ebx
012C6AB3     8941 01              mov dword ptr ds:[ecx+1],eax
012C6AB6     8D85 36E14B00        lea eax,dword ptr ss:[ebp+4BE136]
012C6ABC     8D8D FAE04B00        lea ecx,dword ptr ss:[ebp+4BE0FA]
012C6AC2     8901                 mov dword ptr ds:[ecx],eax
012C6AC4     B8 5E140000          mov eax,145E
012C6AC9     8D8D FFE04B00        lea ecx,dword ptr ss:[ebp+4BE0FF]
012C6ACF     8901                 mov dword ptr ds:[ecx],eax
012C6AD1     8D8D 94E14B00        lea ecx,dword ptr ss:[ebp+4BE194]
012C6AD7     8D85 94F34B00        lea eax,dword ptr ss:[ebp+4BF394]
012C6ADD     51                   push ecx
012C6ADE     50                   push eax
012C6ADF     E8 76FFFFFF          call 012C6A5A
012C6AE4     61                   popad//下面开始处理Stolen Code ★
012C6AE5     EB 02                jmp short 012C6AE9

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

收藏
免费 11
支持
分享
最新回复 (62)
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
2
Try

2004-5-13 17:39
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
3
赞:D
2004-5-13 18:20
0
雪    币: 303
活跃值: (466)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
学习
2004-5-13 18:42
0
雪    币: 227
活跃值: (160)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
to fly
加一个块把偷掉代码加上去的方法,曾想到过,在脱飞速的
packed.exe偷掉的最后一个call里面还套其它的call,我想应该可以,我是为修复FF代码,没有试,不知你试过没有。
2004-5-13 20:39
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
6
我想只要嵌套CALL的代码地址高于基址,应该可以试试
2004-5-13 20:45
0
雪    币: 303
活跃值: (466)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
不知对ACPRO效果怎样/期待下一篇:p
2004-5-13 20:47
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
8
某些ACP壳的Stolen Code应该也可以这样解决
关键是找准“动手”的时机  :D
2004-5-13 20:50
0
雪    币: 301
活跃值: (300)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
9
Thanks
2004-5-14 06:58
0
雪    币: 213
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
好东西
2004-5-14 11:49
0
雪    币: 690
活跃值: (1826)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
11
不错
2004-5-14 12:03
0
雪    币: 411
活跃值: (1160)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
12
版本不对,新版载入就异常,然后才到401000外壳段,是不是1.3b的壳。
2004-5-15 10:14
0
雪    币: 209
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
对,现在下的版本是2.1.1.3 !载入就异常了!fly上传个2.1.0.3的!

让我们跟着学学!先把例子吃透了来!
2004-5-15 10:28
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
14
最初由 橡皮泥 发布
对,现在下的版本是2.1.1.3 !载入就异常了!fly上传个2.1.0.3的!

让我们跟着学学!先把例子吃透了来!


Resource Builder 2.1.0.3 比较大,无法上传,请大家自己搜索一下
另外:随便找个ASProtect 1.23RC4壳的东东练练,效果差不多
2004-5-15 11:30
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
15
最初由 David 发布
版本不对,新版载入就异常,然后才到401000外壳段,是不是1.3b的壳。


或许因为程序的rbcore.dll和sicmplr.dll也是用了ASProtect加壳
新版没时间看
2004-5-15 11:32
0
雪    币: 411
活跃值: (1160)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
16
最初由 fly 发布



或许因为程序的rbcore.dll和sicmplr.dll也是用了ASProtect加壳
新版没时间看


搜不到,全部更新。

留下

email

weiyi75@sohu.com

10-20M邮箱,有空请给我一份。
2004-5-15 11:44
0
雪    币: 209
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
我也是也找不到,所以叫fly来份~

有空的话,也给我份吧!

[email]smile_2000@vip.163.com[/email]

或者fly传到weiyi75的ftp吧,就劳烦weiyi75给我发份了!:D
2004-5-15 12:06
0
雪    币: 411
活跃值: (1160)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
18
1
2004-5-15 12:38
0
雪    币: 411
活跃值: (1160)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
19
橡皮泥请看。

2004-5-15 14:17
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
20
最初由 David 发布


搜不到,全部更新。

留下

email

weiyi75@sohu.com

10-20M邮箱,有空请给我一份。


附件4M多,发了几次均失败
2004-5-15 16:25
0
雪    币: 411
活跃值: (1160)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
21
最初由 fly 发布



附件4M多,发了几次均失败


我找到下载目标了,谢谢关心。
2004-5-15 17:13
0
雪    币: 209
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
好的!谢谢 weiyi75 !~

我收到了。。!
2004-5-16 00:05
0
雪    币: 280
活跃值: (281)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
23
正在学习中,一步一步模仿做。不好意思,“用LordPE打开dumped.exe,从磁盘载入刚才区域脱壳的Region012C0000-012C8000.dmp区段,修改其Voffset=00EC0000”这段没看明白,能否说清楚些?我试了用RebuildPE功能打开dumped.exe时直接就Rebuild了,不知怎么从磁盘载入Region012C0000-012C8000.dmp?请指点一下LodePE的使用。
2004-5-16 00:17
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
24
你先用LodePE打开dumped.exe
然后在区段上点右键,就有“从磁盘载入”选项
2004-5-16 00:22
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
25
最初由 lzqgj 发布
正在学习中,一步一步模仿做。不好意思,“用LordPE打开dumped.exe,从磁盘载入刚才区域脱壳的Region012C0000-012C8000.dmp区段,修改其Voffset=00EC0000”这段没看明白,能否说清楚些?我试了用RebuildPE功能打开dumped.exe时直接就Rebuild了,不知怎么从磁盘载入Region012C0000-012C8000.dmp?请指点一下LodePE的使用。


还是来张抓图吧

2004-5-16 00:29
0
游客
登录 | 注册 方可回帖
返回
//