knife 发表于 2007-2-28 16:36:25

光盘资料管家婆爆破分析

【破文标题】光盘资料管家婆爆破
【破文作者】knife
【作者邮箱】
【作者主页】http://hi.biadu.com/devilknife
【破解工具】PEiD,C32ASM,UC32,OD
【破解平台】Windows XP
【软件名称】光盘资料管家婆
【软件大小】
【原版下载】http://www1.skycn.com/soft/33988.html
【保护方式】加壳
【软件简介】   光盘资料管家婆,是一款专门管理光盘资料的软件工具。您手头的光盘是不是越来越多了?是不是很多光盘你都不记得里面有些什么内容?你尝试过为找一个软件,而把自己所有的光盘一张张的放进光驱去察看吗?是不是很多时候,你知道自己所有的光盘里面就是有你想要的文件或者资料,但你缺偏偏记不得是放在哪张光盘上?
    几乎每个使用电脑的朋友都会遇上这些小问题,问题虽小,但遇上了还真的很麻烦,不断去察看每张光盘还真是让你的工作效率下降不少。
    光盘资料管家婆,她能记住你所有光盘里面的文件信息,当你要查找某个文件或者资料时,你只需要在管家婆这里查找,就知道有没有这个文件,以及这个文件存放在哪张光盘上面。你也可以通过光盘资料管家婆来浏览你所有的光盘文件信息,就比如你有10张光盘都是mp3的歌曲,你要找一首“真心英雄”的歌曲,你可能不记得放在哪张光盘上了,有了光盘资料管家婆,你就不必去每张光盘察看了,你只需直接在管家婆的界面上浏览,就知道在哪张光盘上有这歌曲,...
【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
------------------------------------------------------------------------
一、PEID查壳

先用PEID查壳发现是:
ASPack 2.12 -> Alexey Solodovnikov

二、OD手动脱壳

加载程序,入口点停在如下位置:
008A0001 >60            PUSHAD//程序入口点
008A0002    E8 03000000   CALL CDManage.008A000A//ESP定律
008A0007- E9 EB045D45   JMP 45E704F7
008A000C    55            PUSH EBP
008A000D    C3            RETN
008A000E    E8 01000000   CALL CDManage.008A0014
008A0013    EB 5D         JMP SHORT CDManage.008A0072
008A0015    BB EDFFFFFF   MOV EBX,-13
008A001A    03DD            ADD EBX,EBP
..........

ESP定律一步搞定,Borland C++ 1999 写的,不用修复的:)

三、爆破

脱壳后的程序载入后停在这里:

00401798 > $ /EB 10         JMP SHORT 11.004017AA                                  ;(初始 cpu 选择)
0040179A   |66            DB 66                                                ;CHAR 'f'
0040179B   |62            DB 62                                                ;CHAR 'b'
0040179C   |3A            DB 3A                                                ;CHAR ':'
0040179D   |43            DB 43                                                ;CHAR 'C'
0040179E   |2B            DB 2B                                                ;CHAR '+'
0040179F   |2B            DB 2B                                                ;CHAR '+'
004017A0   |48            DB 48                                                ;CHAR 'H'
004017A1   |4F            DB 4F                                                ;CHAR 'O'
004017A2   |4F            DB 4F                                                ;CHAR 'O'
004017A3   |4B            DB 4B                                                ;CHAR 'K'
004017A4   |90            NOP
004017A5   |E9            DB E9
004017A6   . |98            CWDE
004017A7   . |3058 00       XOR BYTE PTR DS:,BL
004017AA   > \A1 8B305800   MOV EAX,DWORD PTR DS:
004017AF   .C1E0 02       SHL EAX,2
004017B2   .A3 8F305800   MOV DWORD PTR DS:,EAX
004017B7   .52            PUSH EDX
004017B8   .6A 00         PUSH 0                                                 ; /pModule = NULL
004017BA   .E8 CF001800   CALL <JMP.&kernel32.GetModuleHandleA>                  ; \GetModuleHandleA
004017BF   .8BD0          MOV EDX,EAX
004017C1   .E8 EE451700   CALL 11.00575DB4
004017C6   .5A            POP EDX
004017C7   .E8 4C451700   CALL 11.00575D18
004017CC   .E8 23461700   CALL 11.00575DF4
004017D1   .6A 00         PUSH 0                                                 ; /Arg1 = 00000000



+++++++++++++++++++++++++++++++++++++++++++++++++++++++
004142C1|.66:C785 C4FEF>MOV WORD PTR SS:,8
004142CA|.8D4D B0       LEA ECX,DWORD PTR SS:
004142CD|.51            PUSH ECX                                 ; /Arg1
004142CE|.E8 B5110000   CALL 11.00415488                         ; \11.00415488
004142D3|.59            POP ECX
004142D4|.84C0          TEST AL,AL
004142D6|.74 12         JE SHORT 11.004142EA
004142D8|.8D45 B0       LEA EAX,DWORD PTR SS:   
004142DB|.50            PUSH EAX                                 ; /Arg1
004142DC|.E8 A7120000   CALL 11.00415588    //关键CALL                     ; \11.00415588
004142E1|.59            POP ECX
004142E2|.84C0          TEST AL,AL
004142E4|.0F85 A5000000 JNZ 11.0041438F   //关键跳爆破85变84
004142EA|>6A 00         PUSH 0
004142EC|.B9 FA8F5800   MOV ECX,11.00588FFA                      ;提示
004142F1|.BA ED8F5800   MOV EDX,11.00588FED                      ;注册码不正确
004142F6|.A1 50745900   MOV EAX,DWORD PTR DS:
004142FB|.8B00          MOV EAX,DWORD PTR DS:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++
跟进关键CALL来到如下代码段:

00415488/$55            PUSH EBP
00415489|.8BEC          MOV EBP,ESP
0041548B|.51            PUSH ECX
0041548C|.FF75 08       PUSH DWORD PTR SS://试练码
0041548F|.E8 C00E1600   CALL 11.00576354
00415494|.59            POP ECX
00415495|.83F8 10       CMP EAX,10
00415498|.74 13         JE SHORT 11.004154AD
0041549A|.FF75 08       PUSH DWORD PTR SS://试练码
0041549D|.E8 B20E1600   CALL 11.00576354
004154A2|.59            POP ECX
004154A3|.83F8 13       CMP EAX,13
004154A6|.74 05         JE SHORT 11.004154AD
004154A8|.33C0          XOR EAX,EAX
004154AA|.59            POP ECX
004154AB|.5D            POP EBP
004154AC|.C3            RETN
004154AD|>8B55 08       MOV EDX,DWORD PTR SS:
004154B0|.0FBE42 1E   MOVSX EAX,BYTE PTR DS:
004154B4|.83C0 11       ADD EAX,11
004154B7|.B9 19000000   MOV ECX,19
004154BC|.99            CDQ
004154BD|.F7F9          IDIV ECX
004154BF|.80C2 42       ADD DL,42
004154C2|.8855 FF       MOV BYTE PTR SS:,DL
004154C5|.8A45 FF       MOV AL,BYTE PTR SS:
004154C8|.8B55 08       MOV EDX,DWORD PTR SS:
004154CB|.3A42 28       CMP AL,BYTE PTR DS:
004154CE|.75 28         JNZ SHORT 11.004154F8
004154D0|.8B4D 08       MOV ECX,DWORD PTR SS:
004154D3|.0FBE41 02   MOVSX EAX,BYTE PTR DS:
004154D7|.83C0 2B       ADD EAX,2B
004154DA|.B9 19000000   MOV ECX,19
004154DF|.99            CDQ
004154E0|.F7F9          IDIV ECX
004154E2|.80C2 42       ADD DL,42
004154E5|.8855 FF       MOV BYTE PTR SS:,DL
004154E8|.8A45 FF       MOV AL,BYTE PTR SS:
004154EB|.8B55 08       MOV EDX,DWORD PTR SS:
004154EE|.3A42 2A       CMP AL,BYTE PTR DS:
004154F1|.75 05         JNZ SHORT 11.004154F8
004154F3|.B0 01         MOV AL,1
004154F5|.59            POP ECX
004154F6|.5D            POP EBP
004154F7|.C3            RETN
004154F8|>FF75 08       PUSH DWORD PTR SS:                              ; /Arg1
.......

四、爆破

我只是爆破成功了,跟进关键CALL也没有找到程序的注册码,希望找到注册码的朋友指点一下。


------------------------------------------------------------------------
最近工作一直很忙,没时间搞,现在只能够爆破了,希望大家多多指点。
------------------------------------------------------------------------
【版权声明】本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

[ 本帖最后由 knife 于 2007-2-28 17:31 编辑 ]

极速暴龙 发表于 2007-2-28 19:13:44

有两个关键CALL
第一个004142CE   CALL 1798.00415488============================

00415488/$55            PUSH EBP
00415489|.8BEC          MOV EBP,ESP
0041548B|.51            PUSH ECX
0041548C|.FF75 08       PUSH DWORD PTR SS:
0041548F|.E8 C00E1600   CALL 1798.00576354
00415494|.59            POP ECX
00415495|.83F8 10       CMP EAX,10                               ;注册码为0x10位
00415498|.74 13         JE SHORT 1798.004154AD
0041549A|.FF75 08       PUSH DWORD PTR SS:
0041549D|.E8 B20E1600   CALL 1798.00576354
004154A2|.59            POP ECX
004154A3|.83F8 13       CMP EAX,13
004154A6|.74 05         JE SHORT 1798.004154AD
004154A8|.33C0          XOR EAX,EAX
004154AA|.59            POP ECX
004154AB|.5D            POP EBP
004154AC|.C3            RETN
004154AD|>8B55 08       MOV EDX,DWORD PTR SS:
004154B0|.0FBE42 1E   MOVSX EAX,BYTE PTR DS:         ;第一位ASC
004154B4|.83C0 11       ADD EAX,11                               ;加0x11
004154B7|.B9 19000000   MOV ECX,19
004154BC|.99            CDQ
004154BD|.F7F9          IDIV ECX                                 ;除以0x19
004154BF|.80C2 42       ADD DL,42                              ;余数加0x42
004154C2|.8855 FF       MOV BYTE PTR SS:,DL
004154C5|.8A45 FF       MOV AL,BYTE PTR SS:
004154C8|.8B55 08       MOV EDX,DWORD PTR SS:
004154CB|.3A42 28       CMP AL,BYTE PTR DS:            ;与第5位ASC比较
004154CE|.75 28         JNZ SHORT 1798.004154F8                  ;要相等
004154D0|.8B4D 08       MOV ECX,DWORD PTR SS:
004154D3|.0FBE41 02   MOVSX EAX,BYTE PTR DS:            ;第三位ASC
004154D7|.83C0 2B       ADD EAX,2B                               ;加0x2B
004154DA|.B9 19000000   MOV ECX,19
004154DF|.99            CDQ
004154E0|.F7F9          IDIV ECX                                 ;除以0x19
004154E2|.80C2 42       ADD DL,42                              ;余数加0x42
004154E5|.8855 FF       MOV BYTE PTR SS:,DL
004154E8|.8A45 FF       MOV AL,BYTE PTR SS:
004154EB|.8B55 08       MOV EDX,DWORD PTR SS:
004154EE|.3A42 2A       CMP AL,BYTE PTR DS:            ;与第7位ASC比较
004154F1|.75 05         JNZ SHORT 1798.004154F8                  ;要相等
004154F3|.B0 01         MOV AL,1
004154F5|.59            POP ECX
004154F6|.5D            POP EBP
004154F7|.C3            RETN

第二个004142DC   CALL 1798.00415588============================

00415588/$55            PUSH EBP
00415589|.8BEC          MOV EBP,ESP
0041558B|.51            PUSH ECX
0041558C|.FF75 08       PUSH DWORD PTR SS:
0041558F|.E8 C00D1600   CALL 1798.00576354
00415594|.59            POP ECX
00415595|.83F8 10       CMP EAX,10                               ;0x10位
00415598|.74 13         JE SHORT 1798.004155AD
0041559A|.FF75 08       PUSH DWORD PTR SS:
0041559D|.E8 B20D1600   CALL 1798.00576354
004155A2|.59            POP ECX
004155A3|.83F8 13       CMP EAX,13
004155A6|.74 05         JE SHORT 1798.004155AD
004155A8|.33C0          XOR EAX,EAX
004155AA|.59            POP ECX
004155AB|.5D            POP EBP
004155AC|.C3            RETN
004155AD|>8B55 08       MOV EDX,DWORD PTR SS:
004155B0|.0FBE42 1E   MOVSX EAX,BYTE PTR DS:
004155B4|.83C0 11       ADD EAX,11
004155B7|.B9 19000000   MOV ECX,19
004155BC|.99            CDQ
004155BD|.F7F9          IDIV ECX
004155BF|.80C2 42       ADD DL,42
004155C2|.8855 FF       MOV BYTE PTR SS:,DL
004155C5|.8A45 FF       MOV AL,BYTE PTR SS:
004155C8|.8B55 08       MOV EDX,DWORD PTR SS:
004155CB|.3A42 28       CMP AL,BYTE PTR DS:            ;这里和第一个关键CALL一样
004155CE|.75 28         JNZ SHORT 1798.004155F8
004155D0|.8B4D 08       MOV ECX,DWORD PTR SS:
004155D3|.0FBE41 03   MOVSX EAX,BYTE PTR DS:            ;第4位ASC
004155D7|.83C0 38       ADD EAX,38                               ;加0x38
004155DA|.B9 19000000   MOV ECX,19
004155DF|.99            CDQ
004155E0|.F7F9          IDIV ECX                                 ;除以0x19
004155E2|.80C2 42       ADD DL,42                              ;余数加0x42
004155E5|.8855 FF       MOV BYTE PTR SS:,DL
004155E8|.8A45 FF       MOV AL,BYTE PTR SS:
004155EB|.8B55 08       MOV EDX,DWORD PTR SS:
004155EE|.3A42 2B       CMP AL,BYTE PTR DS:            ;与第8位要相等
004155F1|.75 05         JNZ SHORT 1798.004155F8
004155F3|.B0 01         MOV AL,1
004155F5|.59            POP ECX
004155F6|.5D            POP EBP
004155F7|.C3            RETN


注册码16位
第5位ASC=(第1位ASC+17)%25+66
第7位ASC=(第3位ASC+43)%25+66
第8位ASC=(第4位ASC+56)%25+66

几组可用注册码

41ewU!UBzAi42m}N
\K{YKwRV`0!U/Vsi
43;CUjDYh%Z@$1;%

有点问题...

[ 本帖最后由 极速暴龙 于 2007-2-28 20:00 编辑 ]

jiller 发表于 2007-2-28 21:10:41

注册成功信息会写入disc.dat文件里

Search for differences

1. : 139,544 bytes
2. : 139,544 bytes
Offsets: hexadec.

8155:        FE        0E
8156:        30        6F
8157:        50        F3
8158:        39        7A
8159:        5B        5A
8355:        FE        0E
8356:        30        6F
8357:        50        F3
8358:        39        7A
8359:        5B        5A
894D:        C3        CA
894E:        D8        B7
894F:        47        00
8950:        39        A1
8951:        5B        59
8955:        FE        0E
8956:        30        6F
8957:        50        F3
8958:        39        7A
8959:        5B        5A
8B4D:        C3        CA
8B4E:        D8        B7
8B4F:        47        00
8B50:        39        A1
8B51:        5B        59
8B55:        FE        0E
8B56:        30        6F
8B57:        50        F3
8B58:        39        7A
8B59:        5B        5A
1C11C:        5F        7E
1C11D:        51        79
1C11E:        94        FA
1C11F:        7A        28
1C24F:        13        12
1C250:        13        12
1C46A:        31        45
1C46B:        32        72
1C46C:        33        72
1C46D:        34        6F
1C46E:        52        72
1C46F:        35        20
1C470:        55        43
1C471:        4A        6F
1C472:        36        64
1C473:        37        65
1C474:        38        00
1C475:        39        33
1C476:        61        48
1C477:        62        36
1C478:        63        2D
1C479:        64        38
1C47A:        00        41
1C484:        01        00
2011C:        1B        1A
20138:        13        12

56 difference(s) found.

Lancia 发表于 2007-3-1 03:19:07

不要光爆破,还要去除功能限制的!!!

windtrace 发表于 2007-3-1 09:27:11

同意楼上的,一定要仔细一点心

xjpll 发表于 2007-3-4 21:46:30

不错不错。。。这应该支持啊

solfilks 发表于 2007-3-6 12:20:39

i不错,楼主,我来支持了.希望以后有更多好东西.我观注你哦.

余晖王子 发表于 2007-3-31 23:59:54

这应该支持啊~~~~~加油

wer 发表于 2007-4-1 07:24:47

希望以后有更多好东西/:06

lytw508 发表于 2007-4-2 01:34:53

我来支持了.希望以后有更多好东西
页: [1] 2
查看完整版本: 光盘资料管家婆爆破分析