首页
社区
课程
招聘
[旧帖] [原创]ActivestartupV1.43 build95(申请邀请码) 0.00雪花
发表于: 2009-12-3 15:33 1062

[旧帖] [原创]ActivestartupV1.43 build95(申请邀请码) 0.00雪花

2009-12-3 15:33
1062
前言
   学习破解已经有一段时间了,上网找软件练习时发现的这个软件的。自己拿来破解一下,觉得写出来和大家一起分享一下。不知道有没有被别人写出来过,如果有,请别介意。

正题:破解ActivestartupV1.43 build95的程序
查壳是:Version: ASProtect 2.xx (may be 2.11) Registered [1]
这一个是强壳的,但是破起来并不是很难,只要是大家有耐心都可以破它的。

脱Asprotect SKE 2.x壳会遇到如下情况:
1. Emulate standard system functions(易)
2. Advanced Import protection(中)
3. Stolen OEP (脱Asprotect难点就在这,体力+毅力+技巧+时间)
4. SDK (脱Asprotect难点就在这,体力+毅力+技巧+时间)

对于这个软件,如果要全部用手工的话,会很麻烦的。在这里我们使用脚本来帮我们处理前面的两步。

现在我们要做的工作是:
1:用脚本处理IAT,到达Stolen OEP'Start。
   忽略所有的异常,隐藏OD,运行脚本。
  
00401000 Act>  68 01605100          push ActiveSt.00516001     这里是程序入口点
00401005       E8 01000000          call ActiveSt.0040100B
0040100A       C3                   retn
0040100B       C3                   retn
运行脚本后的OD中的信息
00D30378       55           push ebp     这里就是stolen oep start 待会要用到 我们记录下来然后用Lord PE 和ImportREC来修复,会有两个函数是无效的,用插件来修复就行了)
00D30379       036C24 38            add ebp,dword ptr ss:[esp+38]
00D3037D       36:EB 01             jmp short 00D30381
00D30380       9A 8B6C2410 F2EB     call far EBF2:10246C8B
00D30387       01F0                 add eax,esi
------------------------------------------------------------------------------------------------------------------
下面我们要找到stolen code结束的地方。
我们用F7向下走,一直到这里

00D311A3       2BDF                 sub ebx,edi
00D311A5       C703 84E74C00        mov dword ptr ds:[ebx],4CE784
00D311AB       5B                   pop ebx
00D311AC       8F01                 pop dword ptr ds:[ecx]
00D311AE       59                   pop ecx
00D311AF       66:9D                popfw
00D311B1       C1D0 77              rcl eax,77
00D311B4       B8 26374300          mov eax,433726                 ; ASCII "place"
00D311B9       58                   pop eax
00D311BA       68 3A18D300          push 0D3183A
00D311BF       E8 3CEE0B00          call 00DF0000  这个就是Stolen code的结束位置了
00D311C4       68 A609D300          push 0D309A6
00D311C9       E8 32EE0B00          call 00DF0000
00D311CE       57                   push edi
00D311CF       E9 87010000          jmp 00D3135B
00D311D4       83D9 AB              sbb ecx,-55
00D311D7       B9 0E514400          mov ecx,44510E
00D311DC       6A 32                push 32
00D311DE       66:9C                pushfw
下面我们就是要找VM区段
一直F7单向下走,一直到
00DF0137       8DAC07 8C614400      lea ebp,dword ptr ds:[edi+eax+>
00DF013E       5D                   pop ebp
00DF013F       55                   push ebp
00DF0140       036C24 18            add ebp,dword ptr ss:[esp+18]
00DF0144       C1D5 B7              rcl ebp,0B7
00DF0147       81E8 2426F568        sub eax,68F52624
00DF014D       81D0 FC7C50FB        adc eax,FB507CFC
00DF0153       8D87 FC84B300        lea eax,dword ptr ds:[edi+B384>
00DF0159       2BC7                 sub eax,edi
00DF015B       FFD0                 call eax   一直到这里,在这里我们会看到左手边有一个eax=00B384FC 这个就是我们要的VM区段了。
00DF0164       B8 768D4900          mov eax,498D76
00DF0169       034424 38            add eax,dword ptr ss:[esp+38]
00DF016D       58                   pop eax
00DF016E       F4                   hlt
00DF016F       87B6 00C30000        xchg dword ptr ds:[esi+C300],e>
00DF0175       0000                 add byte ptr ds:[eax],al
00DF0177       0000                 add byte ptr ds:[eax],al
00DF0179       0000                 add byte ptr ds:[eax],al
下面我们要找的就是Route Check了。
在上面的那个call eax 那里用F7进去,然后就会F8向下走,一直到
00B38537       8B73 30              mov esi,dword ptr ds:[ebx+30]
00B3853A       8B7B 14              mov edi,dword ptr ds:[ebx+14]
00B3853D       A1 E497B300          mov eax,dword ptr ds:[B397E4]
00B38542       8B40 34              mov eax,dword ptr ds:[eax+34]
00B38545       FFD0                 call eax  一直到这里,记下左手边的eax=00D00000  这个就是待会要用到的RC区段了。
00B38547       2945 0C              sub dword ptr ss:[ebp+C],eax
00B3854A       8B45 0C              mov eax,dword ptr ss:[ebp+C]
00B3854D       2B43 18              sub eax,dword ptr ds:[ebx+18]
已经找到我们想要的东西了,我们现在来补区段了。
一般情况下,
一般的补区段的顺序
VM(2个)
Route Check(1个)
Stolen Code(一般是>10个)  是从最小的那一个补起来的。
用LordPE来补区段,来区域转存下面这十多个
Region00B10000-00B43000.dmp
Region00B50000-00B54000.dmp
这两个就是vm区段的
Region00D00000-00D01000.dmp  这个是RC
下面的就是Stolen code的了
Region00D30000-00D34000.dmp  
Region00D40000-00D42000.dmp
Region00D50000-00D52000.dmp
Region00D60000-00D61000.dmp
Region00D70000-00D71000.dmp
Region00D80000-00D81000.dmp
Region00D90000-00D91000.dmp
Region00DA0000-00DA1000.dmp
Region00DB0000-00DB1000.dmp
Region00DC0000-00DC1000.dmp
Region00DD0000-00DD1000.dmp
Region00DE0000-00DE1000.dmp
Region00DF0000-00DF1000.dmp
Region00E00000-00E01000.dmp

现在用LordPE来修了,打开PE编辑器,选中修复的那一个程序,点区段,从磁盘中载入,把上面的这些转存出来的区段全部补上去,记住一定要从小到大的,否则就全功尽弃了。
点完之后就保存一下,我们用CFF Xplorer来改虚拟地址快一些。
虚拟地址 =转存出来的区段的前面数字—00400000
全部填好,记得最后要核对一次。点保存,全部覆盖就行了。

现在我们要做的就是重建PE 了.重建完后

现在要做的就是修复RC了。
在上面我们不是已经找到了RC的位置的了,所以

用OD载入刚才修复好的程序,直接查找RC上面的一个跳,在那下断点,按F9,中断下来,
00B38534      /EB 01                jmp short dumped_.00B38537
00B38536      |698B 73308B7B 14A1E4>imul ecx,dword ptr ds:[ebx+7B8>
00B38540       B3 00                mov bl,0
00B38542       8B40 34              mov eax,dword ptr ds:[eax+34]  从这里开始
00B38545       FFD0                 call eax
00B38547       2945 0C              sub dword ptr ss:[ebp+C],eax
00B3854A       8B45 0C              mov eax,dword ptr ss:[ebp+C]
00B3854D       2B43 18              sub eax,dword ptr ds:[ebx+18]
00B38550       2B43 68              sub eax,dword ptr ds:[ebx+68]
00B38553       8945 FC              mov dword ptr ss:[ebp-4],eax
00B38556       8D43 24              lea eax,dword ptr ds:[ebx+24]
00B38559       8945 F8              mov dword ptr ss:[ebp-8],eax
00B3855C       85FF                 test edi,edi
00B3855E       76 38                jbe short dumped_.00B38598

从call eax 的上一句开始,使用下面的数字二进制粘贴就可以了,保存一份文件。
90 90 90 8B 44 24 58 83 E8 05 90
现在查壳是Borland Delphi DLL.

就是这样就成功的脱壳了。

我们把电脑的时间调后一些,原来的程序会出现这个注册的窗口。

下面就是注册的了,个人认为从2.xx版本开始的,是出现第三次硬盘指纹出现才返回的,找到我们要注册的地方,下面就由大家去做吧,比较简单,就不写出来了。

奇怪的是:注册成功后,那个试用的窗口依然还在,但是里面的相关信息都已经注册的了,可以无限的使用了。我不知道如何把这一个窗口给去掉,希望有人可以告诉我一声,不胜感激。

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//