作品发布     邀请码    设为首页  收藏 

当前位置:文章免杀 → 文章内容 >> 破解系统美化专家


破解系统美化专家

更新时间:2010-12-25 4:56:33   作者:佚名  来源:不详

文/图 zjjtr
系统美化专家是一款专门用于美化、个性化Windows软件软件界面美观,操作简单方便,新手也可以将Windows改造得个性十足!它是一款共享软件,未注册会有这样那样限制,不是很爽,那就自己动手,丰衣足食吧。
简单的注册一下,发现没有注册提示,看来作者还有点安全意识嘛。再用PEiD查壳,发现加了ASPack 2.1的壳,直接用PEiD的脱壳插件脱了壳,再次检验是“Borland Delphi 6.0 - 7.0”编写的。没有错误提示,只能用万能断点了。用OD载入软件,F9运行,输入用户名“zjjtr”和密码“1234567890”,下万能断点,点注册,程序断了下来。
77D3352D  F3:yesmybi.com REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
77D3352F  8BC8  MOV ECX,EAX
77D33531  83E1 03 AND ECX,3
77D33534  F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
77D33536  E8 E3FBFFFF   CALL USER32.77D3311E
77D3353B  5F   POP EDI

看右边的寄存器窗口写着“zjjtr”,按F9,直到出现“1234567890”。选中EDI,右键点击“数据窗口跟随”,按F8,来到断点的下一个call,在左下角的窗口选中注册码,下内存访问断点,按F9。
 
004093E7   90  NOP
004093E8 /$ 53  PUSH EBX
004093E9 |. 56  PUSH ESI
004093EA |. 57  PUSH EDI;来到这里
004093EB |. 8BFA  MOV EDI,EDX
004093ED |. 8BF0  MOV ESI,EAX
004093EF |. 8BC6  MOV EAX,ESI
004093F1 |. E8 12B8FFFF  CALL xp2003_e.00404C08
;检验用户名注册码是否为空
004093F6 |. BB 01000000  MOV EBX,1
004093FB |. EB 01 JMP SHORT xp2003_e.004093FE
004093FD |> 43  /INC EBX
004093FE |> 3BC3 CMP EAX,EBX
00409400 |. 7C 07 |JL SHORT xp2003_e.00409409
00409402 |. 807C1E FF 20 |CMP BYTE PTR DS:[ESI+EBX-1],20
00409407 |.^ 76 F4 \JBE SHORT xp2003_e.004093FD
00409409 |> 57  PUSH EDI
0040940A |. B9 FFFFFF7F  MOV ECX,7FFFFFFF
0040940F |. 8BD3  MOV EDX,EBX
00409411 |. 8BC6  MOV EAX,ESI
00409413 |. E8 48BAFFFF  CALL xp2003_e.00404E60
00409418 |. 5F  POP EDI
00409419 |. 5E  POP ESI
0040941A |. 5B  POP EBX
0040941B \. C3  RETN

一路F8,在0040941B处返回到下面的代码处。
 
005D9D52  . 33C0  XOR EAX,EAX
005D9D54  . 55  PUSH EBP
005D9D55  . 68 349E5D00  PUSH xp2003_e.005D9E34
005D9D5A  . 64:FF30 PUSH DWORD PTR FS:[EAX]
005D9D5D  . 64:8920 MOV DWORD PTR FS:[EAX],ESP
005D9D60  . 33D2  XOR EDX,EDX
005D9D62  . 55  PUSH EBP
005D9D63  . 68 F49D5D00  PUSH xp2003_e.005D9DF4
005D9D68  . 64:FF32 PUSH DWORD PTR FS:[EDX]
005D9D6B  . 64:8922 MOV DWORD PTR FS:[EDX],ESP
005D9D6E  . 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8]
005D9D71  . 8B83 04030000 MOV EAX,DWORD PTR DS:[EBX+304]
005D9D77  . E8 A4CFE6FF  CALL xp2003_e.00446D20
005D9D7C  . 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
005D9D7F  . 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]
005D9D82  . E8 61F6E2FF  CALL xp2003_e.004093E8
005D9D87  . 837D FC 00  CMP DWORD PTR SS:[EBP-4],0
;检验用户名是否为空
005D9D8B  . 75 0C JNZ SHORT xp2003_e.005D9D99
005D9D8D  . A1 B8056300  MOV EAX,DWORD PTR DS:[6305B8]
005D9D92  . E8 35A8E8FF  CALL xp2003_e.004645CC
005D9D97  . EB 51 JMP SHORT xp2003_e.005D9DEA
005D9D99  > 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]
005D9D9C  . 8B83 08030000 MOV EAX,DWORD PTR DS:[EBX+308]
005D9DA2  . E8 79CFE6FF  CALL xp2003_e.00446D20
005D9DA7  . 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]
005D9DAA  . 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C]
005D9DAD  . E8 36F6E2FF  CALL xp2003_e.004093E8
005D9DB2  . 837D F4 00  CMP DWORD PTR SS:[EBP-C],0
;检验注册码是否为空
005D9DB6  . 75 0C JNZ SHORT xp2003_e.005D9DC4
005D9DB8  . A1 B8056300  MOV EAX,DWORD PTR DS:[6305B8]
005D9DBD  . E8 0AA8E8FF  CALL xp2003_e.004645CC
005D9DC2  . EB 26 JMP SHORT xp2003_e.005D9DEA
005D9DC4  > 8BC3  MOV EAX,EBX
005D9DC6  . E8 C9020000  CALL xp2003_e.005DA094
;算法call,F7跟入
005D9DCB  . 84C0  TEST AL,AL
005D9DCD  . 74 09 JE SHORT xp2003_e.005D9DD8
005D9DCF  . 8BC3  MOV EAX,EBX
005D9DD1  . E8 6E000000  CALL xp2003_e.005D9E44
005D9DD6  . EB 12 JMP SHORT xp2003_e.005D9DEA
005D9DD8  > B8 F4010000  MOV EAX,1F4
005D9DDD  > 48  DEC EAX
005D9DDE  .^ 75 FD JNZ SHORT xp2003_e.005D9DDD
005D9DE0  . A1 B8056300  MOV EAX,DWORD PTR DS:[6305B8]
005D9DE5  . E8 E2A7E8FF  CALL xp2003_e.004645CC
005D9DEA  > 33C0  XOR EAX,EAX
005D9DEC  . 5A  POP EDX
005D9DED  . 59  POP ECX
005D9DEE  . 59  POP ECX
005D9DEF  . 64:8910 MOV DWORD PTR FS:[EAX],EDX
005D9DF2  . EB 12 JMP SHORT xp2003_e.005D9E06
005D9DF4  .^ E9 27A2E2FF  JMP xp2003_e.00404020
005D9DF9  . B8 F4010000  MOV EAX,1F4
005D9DFE  > 48  DEC EAX
005D9DFF  .^ 75 FD JNZ SHORT xp2003_e.005D9DFE
005D9E01  . E8 82yesmybi.comE2FF  CALL xp2003_e.00404388
005D9E06  > 33C0  XOR EAX,EAX
005D9E08  . 5A  POP EDX
005D9E09  . 59  POP ECX
005D9E0A  . 59  POP ECX
005D9E0B  . 64:8910 MOV DWORD PTR FS:[EAX],EDX
005D9E0E  . 68 3B9E5D00  PUSH xp2003_e.005D9E3B
005D9E13  > 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
005D9E16  . E8 35ABE2FF  CALL xp2003_e.00404950
005D9E1B  . 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
005D9E1E  . E8 2DABE2FF  CALL xp2003_e.00404950
005D9E23  . 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]
005D9E26  . E8 25ABE2FF  CALL xp2003_e.00404950
005D9E2B  . 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
005D9E2E  . E8 1DABE2FF  CALL xp2003_e.00404950
005D9E33  . C3  RETN
005D9E34  .^ E9 9BA4E2FF  JMP xp2003_e.004042D4
005D9E39  .^ EB D8 JMP SHORT xp2003_e.005D9E13
005D9E3B  . 5F  POP EDI
005D9E3C  . 5E  POP ESI
005D9E3D  . 5B  POP EBX
005D9E3E  . 8BE5  MOV ESP,EBP
005D9E40  . 5D  POP EBP
005D9E41  . C3  RETN

F7后又来到了这里。

005DA094 /$ 55  PUSH EBP
005DA095 |. 8BEC  MOV EBP,ESP
005DA097 |. 83C4 E8 ADD ESP,-18
005DA09A |. 53  PUSH EBX
005DA09B |. 56  PUSH ESI
005DA09C |. 33D2  XOR EDX,EDX
005DA09E |. 8955 E8 MOV DWORD PTR SS:[EBP-18],EDX
005DA0A1 |. 8955 EC MOV DWORD PTR SS:[EBP-14],EDX
005DA0A4 |. 8955 F4 MOV DWORD PTR SS:[EBP-C],EDX
005DA0A7 |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
005DA0AA |. 33C0  XOR EAX,EAX
005DA0AC |. 55  PUSH EBP
005DA0AD |. 68 93A15D00  PUSH xp2003_e.005DA193
005DA0B2 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
005DA0B5 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
005DA0B8 |. 33DB  XOR EBX,EBX
005DA0BA |. 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C]
005DA0BD |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
005DA0C0 |. 8B80 04030000 MOV EAX,DWORD PTR DS:[EAX+304]
005DA0C6 |. E8 55CCE6FF  CALL xp2003_e.00446D20
;用户名长度放入EAX
005DA0CB |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
005DA0CE |. E8 35ABE2FF  CALL xp2003_e.00404C08
005DA0D3 |. 8BF0  MOV ESI,EAX
005DA0D5 |. 85F6  TEST ESI,ESI
;用户名是否为空
005DA0D7 |. 7E 38 JLE SHORT xp2003_e.005DA111
005DA0D9 |. C745 F0 01000>MOV DWORD PTR SS:[EBP-10],1
005DA0E0 |> 8D45 EC /LEA EAX,DWORD PTR SS:[EBP-14]
005DA0E3 |. 50  |PUSH EAX
005DA0E4 |. B9 01000000  |MOV ECX,1
005DA0E9 |. 8B55 F0 |MOV EDX,DWORD PTR SS:[EBP-10]
005DA0EC |. 8B45 F4 |MOV EAX,DWORD PTR SS:[EBP-C]
005DA0EF |. E8 6CADE2FF  |CALL xp2003_e.00404E60
005DA0F4 |. 8B45 EC |MOV EAX,DWORD PTR SS:[EBP-14]
005DA0F7 |. E8 04ADE2FF  |CALL xp2003_e.00404E00
005DA0FC |. 8A00  |MOV AL,BYTE PTR DS:[EAX] 
005DA0FE |. 25 FF000000  |AND EAX,0FF
;依次获取用户名每个字符
005DA103 |. 03D8  |ADD EBX,EAX
;加到EBX
005DA105 |. 81F3 05FA0B00 |XOR EBX,0BFA05
;异或后存到EBX
005DA10B |. FF45 F0 |INC DWORD PTR SS:[EBP-10]
005DA10E |. 4E  |DEC ESI
005DA10F |.^ 75 CF \JNZ SHORT xp2003_e.005DA0E0

这里的循环用于对用户名进行计算,结果放在EBX中。

005DA111 |> A1 C4056300  MOV EAX,DWORD PTR DS:[6305C4]
;固定数字0x657964存放到EAX
005DA116 |. 8BD0  MOV EDX,EAX;转移
005DA118 |. C1E0 04 SHL EAX,4;左移4位
005DA11B |. 03C2  ADD EAX,EDX;加到EAX
005DA11D |. 03D8  ADD EBX,EAX;加到EBX
005DA11F |. 81C3 D4A31300 ADD EBX,13A3D4
;EBX=EBX+13A3D4
005DA125 |. 81F3 8DED5900 XOR EBX,59ED8D
;EBX=EBX xor 59ED8D
005DA12B |. 8D55 E8 LEA EDX,DWORD PTR SS:[EBP-18]
005DA12E |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
005DA131 |. 8B80 08030000 MOV EAX,DWORD PTR DS:[EAX+308]
005DA137 |. E8 E4CBE6FF  CALL xp2003_e.00446D20
;注册码长度存到EAX
005DA13C |. 8B45 E8 MOV EAX,DWORD PTR SS:[EBP-18]
005DA13F |. E8 44F5E2FF  CALL xp2003_e.00409688

注册码存到EAX,进入这个call可以发现注册码小于等于十位。
 
005DA144 |. 8BF3  MOV ESI,EBX ;EBX 转移到ESI
005DA146 |. 81F6 2473C400 XOR ESI,0C47324
;ESI=ESI xor 0C47324,ESI存真码
005DA14C |. 3BC6  CMP EAX,ESI;真假码比较
005DA14E |. 75 19 JNZ SHORT xp2003_e.005DA169;这里可以爆破
005DA150 |. C645 FB 01  MOV BYTE PTR SS:[EBP-5],1
005DA154 |. B8 BC056300  MOV EAX,xp2003_e.006305BC
005DA159 |. 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C]
005DA15C |. E8 43A8E2FF  CALL xp2003_e.004049A4
005DA161 |. 8935 C0056300 MOV DWORD PTR DS:[6305C0],ESI
005DA167 |. EB 04 JMP SHORT xp2003_e.005DA16D
005DA169 |> C645 FB 00  MOV BYTE PTR SS:[EBP-5],0
005DA16D |> 33C0  XOR EAX,EAX
005DA16F |. 5A  POP EDX
005DA170 |. 59  POP ECX
005DA171 |. 59  POP ECX
005DA172 |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
005DA175 |. 68 9AA15D00  PUSH xp2003_e.005DA19A
005DA17A |> 8D45 E8 LEA EAX,DWORD PTR SS:[EBP-18]
005DA17D |. E8 CEA7E2FF  CALL xp2003_e.00404950
005DA182 |. 8D45 EC LEA EAX,DWORD PTR SS:[EBP-14]
005DA185 |. E8 C6A7E2FF  CALL xp2003_e.00404950
005DA18A |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
005DA18D |. E8 BEA7E2FF  CALL xp2003_e.00404950
005DA192 \. C3  RETN
005DA193  .^ E9 3CA1E2FF  JMP xp2003_e.004042D4
005DA198  .^ EB E0 JMP SHORT xp2003_e.005DA17A
005DA19A  . 8A45 FB MOV AL,BYTE PTR SS:[EBP-5]
005DA19D  . 5E  POP ESI
005DA19E  . 5B  POP EBX
005DA19F  . 8BE5  MOV ESP,EBP
005DA1A1  . 5D  POP EBP
005DA1A2  . C3  RETN
005DA1A3   90  NOP
005DA1A4  . C705 C4056300>MOV DWORD PTR DS:[6305C4],xp2003_e.00657>
005DA1AE  . C3  RETN

经过上面的步骤,算法就跟出来了,依次取用户名每一位的ASCII码值与0xBFA05异或并累加,之后再与0x657964、0x6579640和0x13A3D4累加求和,结果与0x59ED8D异或,再与0xC47324异或即可得到注册码。由此我们就可以得到对应于zjjtr这个用户名的注册码104936704。
有了上面的算法分析,我们就可以自己写一个注册机了。下面是我用VB写的注册机代码,很简单,我就不解释了。
 
Private Sub Command1_Click()
Dim b, c, d, i As Long
Dim a As String
a = Text1.Text
b = Len(a)
For i = 1 To b Step 1
c = (c + Asc(Mid(a, i, 1))) Xor 784901
Next i
d = (c + 6650212 + 106403392 + 1287124) Xor 5893517
d = d Xor 12874532
Text2.Text = d
End Sub

这款软件总体来说,保护很不到位,虽然没有错误提示,但却很容易找到关键算法处,可以爆破,算法只是简单的一个循环,一眼就可以看出来了。如果大家觉得这款软件好用,还是支持一下作者的劳动,去购买正版吧

责任编辑:华中帝国        



本文引用网址: 

破解系统美化专家的相关文章
发表评论

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码