小糊涂虫 发表于 2010-1-10 20:27

破解光盘复制专家 6.0的一点笔记

【文章标题】: 破解光盘复制专家 6.0
【文章作者】: 小糊涂虫
【作者主页】: www.52pojie.cn
【软件名称】: 光盘复制专家 6.0
【软件大小】: 4.11 mb
【下载地址】: 多特下载
【保护方式】: Armadillo V6.X Minimum Protection
【使用工具】: OD,lordPE,importRCE,然后加上海风的SOD
【操作平台】: windows xp sp2
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
过程:

1.查壳
显示为:Armadillo V6.X Minimum Protection -> Silicon Realms Toolworks   * Sign.By.fly * 20081227 *
先看是单进程还是双进程,运行。
确定为单进程
不管它是什么保护,OD伺候(应该不会全保护)。
004D5B22 p>E8 433D0000       call pepskyCD.004D986A
004D5B27   ^ E9 16FEFFFF       jmp pepskyCD.004D5942
004D5B2C   6A 0C             push 0C
004D5B2E   68 D8A24F00       push pepskyCD.004FA2D8
004D5B33   E8 641E0000       call pepskyCD.004D799C
004D5B38   8365 E4 00      and dword ptr ss:,0
004D5B3C   8B75 08         mov esi,dword ptr ss:
004D5B3F   3B35 D0D34F00   cmp esi,dword ptr ds:
004D5B45   77 22             ja short pepskyCD.004D5B69
004D5B47   6A 04             push 4
004D5B49   E8 C31A0000       call pepskyCD.004D7611
004D5B4E   59                pop ecx
用老方法脱。
断点:bp GetModuleHandleA+9
shift+F9不知多少次以后,来到。(堆栈窗口)
00129410         /0012EB6C
00129414         |01128355    返回到 01128355 来自 kernel32.GetModuleHandleA
00129418         |0115414C    ASCII "kernel32.dll"
0012941C         |01155D84    ASCII "VirtualAlloc"
00129420         |71E3A47D
00129424         |004F3388    pepskyCD.004F3388
然后斯文一点,再f9两下。alt+f9
来到
0110A7F4   51                push ecx
0110A7F5   FF15 88201501   call dword ptr ds:            ; kernel32.LoadLibraryA
0110A7FB   8B55 F4         mov edx,dword ptr ss:
0110A7FE   8B0D 3C201601   mov ecx,dword ptr ds:
0110A804   890491            mov dword ptr ds:,eax
0110A807   8B55 F4         mov edx,dword ptr ss:
0110A80A   A1 3C201601       mov eax,dword ptr ds:
0110A80F   833C90 00         cmp dword ptr ds:,0
0110A813   75 05             jnz short 0110A81A
0110A815   ^ E9 EFFEFFFF       jmp 0110A709
注意那个 loadlibrarya下面,找跳转,近跳就NOP远跳就JMP (前辈们说的)
.......................
接下来就是到程序的入口了来个断点
然后alt+f9
--------------------------------------------------------------------------------------
0012F6C8          01115F4C    /CALL 到 CreateThread 来自 01115F46
0012F6CC          00000000    |pSecurity = NULL
0012F6D0          00000000    |StackSize = 0
0012F6D4          01116EB0    |ThreadFunction = 01116EB0
0012F6D8          00000000    |pThreadParm = NULL
0012F6DC          00000000    |CreationFlags = 0
--------------------------------------------------------------------------------------

01115F4C   50                push eax
01115F4D   FF15 90221501   call dword ptr ds:            ; kernel32.CloseHandle
01115F53   5E                pop esi
01115F54   5B                pop ebx
01115F55   8BE5            mov esp,ebp
01115F57   5D                pop ebp
01115F58   C3                retn
,然后一直F8,
看到有CALL edx那里,就F7
01132DD2   2B55 DC         sub edx,dword ptr ss:
01132DD5   FFD2            call edx                                                   传说中的.........F7
01132DD7   8945 FC         mov dword ptr ss:,eax
01132DDA   8B45 FC         mov eax,dword ptr ss:

0048C9C0   55                push ebp                                          这里????????
0048C9C1   8BEC            mov ebp,esp
0048C9C3   83C4 F0         add esp,-10
0048C9C6   B8 90B84800       mov eax,pepskyCD.0048B890
0048C9CB   E8 00A1F7FF       call pepskyCD.00406AD0
0048C9D0   A1 F0FB4800       mov eax,dword ptr ds:
0048C9D5   8B00            mov eax,dword ptr ds:
0048C9D7   E8 6484FDFF       call pepskyCD.00464E40
0048C9DC   8B0D 24FD4800   mov ecx,dword ptr ds:            ; pepskyCD.004936C4
0048C9E2   A1 F0FB4800       mov eax,dword ptr ds:



打开lordPE和importRCE
脱壳修复。
脱下来的程序有7M之多,减一下肥。
用lordPE打开脱壳的程序,删除后面的那几个区段(最后那个别删,我也不知道为什么:lol )重建一下。
变成了3.54M

经测试程序可以运行
壳脱完了就是破解了。
放入OD
F9让程序运行。
注册,F12 alt+k
来到关键地方
00D3063E   E8 3D98F5FF       call CheckReg.00C89E80                              程序注册码由5段组成
00D30643   83F8 05         cmp eax,5                                                         每一段注册码的位数和5比较
00D30646   0F85 80000000   jnz CheckReg.00D306CC
00D3064C   8D55 D0         lea edx,dword ptr ss:
00D3064F   8B83 9C030000   mov eax,dword ptr ds:
00D30655   E8 2ADCF9FF       call CheckReg.00CCE284
00D3065A   8B45 D0         mov eax,dword ptr ss:
00D3065D   E8 724EF5FF       call CheckReg.00C854D4
00D30662   E8 1998F5FF       call CheckReg.00C89E80
00D30667   83F8 05         cmp eax,5                                                       ......................
00D3066A   75 60             jnz short CheckReg.00D306CC
00D3066C   8D55 CC         lea edx,dword ptr ss:
00D3066F   8B83 A0030000   mov eax,dword ptr ds:
00D30675   E8 0ADCF9FF       call CheckReg.00CCE284
00D3067A   8B45 CC         mov eax,dword ptr ss:
00D3067D   E8 524EF5FF       call CheckReg.00C854D4
00D30682   E8 F997F5FF       call CheckReg.00C89E80
00D30687   83F8 05         cmp eax,5                                                          ..................
00D3068A   75 40             jnz short CheckReg.00D306CC
00D3068C   8D55 C8         lea edx,dword ptr ss:
00D3068F   8B83 A4030000   mov eax,dword ptr ds:
00D30695   E8 EADBF9FF       call CheckReg.00CCE284
00D3069A   8B45 C8         mov eax,dword ptr ss:
00D3069D   E8 324EF5FF       call CheckReg.00C854D4
00D306A2   E8 D997F5FF       call CheckReg.00C89E80
00D306A7   83F8 05         cmp eax,5                                                         .......................
00D306AA   75 20             jnz short CheckReg.00D306CC
00D306AC   8D55 C4         lea edx,dword ptr ss:
00D306AF   8B83 A8030000   mov eax,dword ptr ds:
00D306B5   E8 CADBF9FF       call CheckReg.00CCE284
00D306BA   8B45 C4         mov eax,dword ptr ss:
00D306BD   E8 124EF5FF       call CheckReg.00C854D4
00D306C2   E8 B997F5FF       call CheckReg.00C89E80
00D306C7   83F8 05         cmp eax,5                                             .............................

.....................................

00D30790   8B45 AC         mov eax,dword ptr ss:
00D30793   E8 2491F5FF       call CheckReg.00C898BC
00D30798   8BC8            mov ecx,eax
00D3079A   8BC6            mov eax,esi
00D3079C   BF 10270000       mov edi,2710                              ?
00D307A1   33D2            xor edx,edx
00D307A3   F7F7            div edi
00D307A5   8BF8            mov edi,eax
00D307A7   8BC1            mov eax,ecx
00D307A9   B9 10270000       mov ecx,2710
00D307AE   33D2            xor edx,edx
00D307B0   F7F1            div ecx
................................

至于算法我完全不懂,哪位仁兄愿意完成之?

00D30845   5A                pop edx
00D30846   58                pop eax
00D30847   90                nop                        这里NOP
00D30848   90                nop
00D30849   90                nop
00D3084A   90                nop
00D3084B   90                nop
00D3084C   90                nop
00D3084D   8D55 9C         lea edx,dword ptr ss:
00D30850   8B83 A8030000   mov eax,dword ptr ds:


00D30870   3B0424            cmp eax,dword ptr ss:
00D30873   5A                pop edx
00D30874   58                pop eax
00D30875   90                nop                           这里Nop
00D30876   90                nop
00D30877   90                nop
00D30878   90                nop
00D30879   90                nop
00D3087A   90                nop
00D3087B   8D55 98         lea edx,dword ptr ss:
00D3087E   8B83 98030000   mov eax,dword ptr ds:


以上两处NOP后保存,覆盖原来的那个Dll(CheckReg.dll),随便运行输入5段5位数就OK。


以上本人是在今天破解这个软件的一点记录。
我今天测试了一下,复制不了DVD(难道是刻录机的问题)。

石头学破解 发表于 2010-1-10 20:32

很详细啊,学习了。

bingmuou 发表于 2010-1-10 20:49

厉害,高手。如果能找出算法就更完美了

lovettww 发表于 2010-1-10 22:39

可以找出注册码的。。。

流浪情人 发表于 2010-1-10 22:47

学习了撒 呵呵 不错的方法

落叶E随風 发表于 2010-1-11 03:48

:lol来学习下

小糊涂虫 发表于 2010-1-11 10:34

可以找出注册码的。。。
lovettww 发表于 2010-1-10 22:39 http://bbs.52pojie.cn/images/common/back.gif


    看一下你的方法/。。。

heihu 发表于 2010-1-11 21:04

我记得好像只需要改一个字节就可以完美破解了

cjchome 发表于 2010-1-11 22:33

学习了,还是不懂

linwenlin 发表于 2010-1-11 23:32

很详细,跟楼主学习
页: [1] 2
查看完整版本: 破解光盘复制专家 6.0的一点笔记