漢語寶典 Build 2003.05.28

看雪資料發表於2015-11-15
標 題:漢語寶典 Build 2003.05.28  
發信人:fly
時 間:2003/06/01 12:15pm 
詳細資訊:


簡單演算法——漢語寶典 Build 2003.05.28

下載頁面:  http://www.skycn.com/soft/11289.html
軟體大小:  13179 KB
軟體語言:  簡體中文
軟體類別:  國產軟體 / 共享版 / 文科工具
應用平臺:  Win9x/NT/2000/XP
加入時間:  2003-05-29 08:16:28
下載次數:  10306
推薦等級:  ***
開 發 商:  http://www.renyuansoft.com/ 


【軟體簡介】:漢語寶典是任遠工作室繼考試系統後的又一力作,漢語寶典內容如下:1、全中文電腦朗讀,可以朗讀任意漢語文章;2、漢語拼音加註功能,兒童閱讀文章更加方便;3、7000餘個漢字的字義解釋、拼音、筆畫及繁體字;4、14000個成語、拼音、成語釋義、出處及示例;5、93600餘首中華詩詞,包括作者、考證及出處,內容涉及各個朝代;6、11551個病例,涉及外科、內科、眼科、兒科、婦科等;2000餘種中西醫藥物特性說明;7、10000餘篇中外文摘;8、部分詞彙及相應解釋。9、13000個名言警句及出處。10、5200餘組反義詞。11、近千個文言文字詞釋義。12、精心收集幽默笑話,工作之餘更為輕鬆。13、資料庫自擴充功能,可以根據自己的需要,新增資料庫中沒有的內容,方便日常使用。系統的資料庫總容量已達100M以上,你可以以各種方式快速檢索出你所需要的內容。漢語寶典是一個真正的文科、醫科工具。 

【軟體限制】:NAG 

【作者宣告】:初學Crack,只是感興趣,沒有其它目的。失誤之處敬請諸位大俠賜教! 

【破解工具】:TRW2000娃娃修改版、Ollydbg1.09、PEiD、CasprGui、W32Dasm 9.0白金版 

————————————————————————————————— 
【過    程】: 


程式用了不少的“冗餘程式碼”,有點花眼,演算法卻是簡單的。本來不想公佈這個筆記,但是看到作者在程式碼裡用了某些讓人難受的詞語,所以貼了出來。其實何必如此?不如提高軟體的水平和增強加密。 

chinesedic.exe 是ASProtect 1.2殼,用CasprGui脫之。770K->2.04M。 Delphi 編寫。 

機器碼:555490825
試煉碼:13572468
—————————————————————————————————
:00508C82 E821040000              call 005090A8
                                 ====>取C盤的硬碟序列號並轉換成10進位制值 

:00508C87 FF75F8                  push [ebp-08]
                                 ====>[ebp-08]=555490825   這就是機器碼 

* Possible StringData Ref from Data Obj ->"〗和E-Mail"
                                 |
:00508C8A 68FC8F5000              push 00508FFC
:00508C8F 8D45FC                  lea eax, dword ptr [ebp-04]
:00508C92 BA03000000              mov edx, 00000003
:00508C97 E834B4EFFF              call 004040D0
:00508C9C 8B45FC                  mov eax, dword ptr [ebp-04]
:00508C9F 50                      push eax
:00508CA0 8B83E8020000            mov eax, dword ptr [ebx+000002E8]
:00508CA6 8B404C                  mov eax, dword ptr [eax+4C]
:00508CA9 33D2                    xor edx, edx
:00508CAB E844D4FAFF              call 004B60F4
:00508CB0 5A                      pop edx
:00508CB1 E8C2CFFAFF              call 004B5C78
:00508CB6 8D45F4                  lea eax, dword ptr [ebp-0C]
:00508CB9 50                      push eax 

* Possible StringData Ref from Data Obj ->"NoSET"
                                 |
:00508CBA B910905000              mov ecx, 00509010 

* Possible StringData Ref from Data Obj ->"LocalM"
                                 |
:00508CBF BA20905000              mov edx, 00509020
:00508CC4 8B83E0020000            mov eax, dword ptr [ebx+000002E0]
:00508CCA E8E19BFAFF              call 004B28B0
:00508CCF 8B45F4                  mov eax, dword ptr [ebp-0C] 

* Possible StringData Ref from Data Obj ->"NoSET"
                                 |
:00508CD2 BA10905000              mov edx, 00509010
:00508CD7 E844B4EFFF              call 00404120
:00508CDC 7537                    jne 00508D15
:00508CDE 8D55F0                  lea edx, dword ptr [ebp-10]
:00508CE1 8BC3                    mov eax, ebx
:00508CE3 E8C0030000              call 005090A8
:00508CE8 8B4DF0                  mov ecx, dword ptr [ebp-10] 

* Possible StringData Ref from Data Obj ->"LocalM"
                                 |
:00508CEB BA20905000              mov edx, 00509020
:00508CF0 8B83E0020000            mov eax, dword ptr [ebx+000002E0]
:00508CF6 E8BD9FFAFF              call 004B2CB8 

* Possible StringData Ref from Data Obj ->"05328499517"
                                 |
:00508CFB B930905000              mov ecx, 00509030 

* Possible StringData Ref from Data Obj ->"LocalID"
                                 |
:00508D00 BA44905000              mov edx, 00509044
:00508D05 8B83E0020000            mov eax, dword ptr [ebx+000002E0]
:00508D0B E8A89FFAFF              call 004B2CB8
:00508D10 E923020000              jmp 00508F38 

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00508CDC(C)
|
:00508D15 8D45EC                  lea eax, dword ptr [ebp-14]
:00508D18 50                      push eax 

* Possible StringData Ref from Data Obj ->"370285"
                                 |
:00508D19 B954905000              mov ecx, 00509054 

* Possible StringData Ref from Data Obj ->"LocalM"
                                 |
:00508D1E BA20905000              mov edx, 00509020
:00508D23 8B83E0020000            mov eax, dword ptr [ebx+000002E0]
:00508D29 E8629DFAFF              call 004B2A90
:00508D2E 8B55EC                  mov edx, dword ptr [ebp-14]
                                 ====>EDX=555490825 

:00508D31 B86CF05000              mov eax, 0050F06C
:00508D36 E8A9B0EFFF              call 00403DE4
:00508D3B 8D45E8                  lea eax, dword ptr [ebp-18]
:00508D3E 50                      push eax 

* Possible StringData Ref from Data Obj ->"8499517"
                                 |
:00508D3F B964905000              mov ecx, 00509064 

* Possible StringData Ref from Data Obj ->"LocalID"
                                 |
:00508D44 BA44905000              mov edx, 00509044
:00508D49 8B83E0020000            mov eax, dword ptr [ebx+000002E0]
:00508D4F E83C9DFAFF              call 004B2A90
:00508D54 8B55E8                  mov edx, dword ptr [ebp-18]
:00508D57 B870F05000              mov eax, 0050F070
:00508D5C E883B0EFFF              call 00403DE4
:00508D61 8D45E4                  lea eax, dword ptr [ebp-1C] 

* Possible StringData Ref from Data Obj ->"8499517"
                                 |
:00508D64 B964905000              mov ecx, 00509064
:00508D69 8B1550CB5000            mov edx, dword ptr [0050CB50]
:00508D6F E8E8B2EFFF              call 0040405C
:00508D74 8B45E4                  mov eax, dword ptr [ebp-1C]
:00508D77 50                      push eax
:00508D78 8D4DE0                  lea ecx, dword ptr [ebp-20]
:00508D7B BA54CB5000              mov edx, 0050CB54
:00508D80 8BC3                    mov eax, ebx
:00508D82 E88D030000              call 00509114
:00508D87 8D45E0                  lea eax, dword ptr [ebp-20] 

* Possible StringData Ref from Data Obj ->"8499517"
                                 |
:00508D8A BA64905000              mov edx, 00509064
:00508D8F E884B2EFFF              call 00404018
:00508D94 8B55E0                  mov edx, dword ptr [ebp-20]
:00508D97 58                      pop eax
:00508D98 E883B3EFFF              call 00404120
:00508D9D 0F8572010000            jne 00508F15
:00508DA3 8D4DD8                  lea ecx, dword ptr [ebp-28]
:00508DA6 BA54CB5000              mov edx, 0050CB54
:00508DAB 8BC3                    mov eax, ebx
:00508DAD E862030000              call 00509114
:00508DB2 8B4DD8                  mov ecx, dword ptr [ebp-28]
:00508DB5 8D45DC                  lea eax, dword ptr [ebp-24] 

* Possible StringData Ref from Data Obj ->"TNND"
                                 |
:00508DB8 BA74905000              mov edx, 00509074
:00508DBD E89AB2EFFF              call 0040405C
:00508DC2 8B45DC                  mov eax, dword ptr [ebp-24]
:00508DC5 50                      push eax
:00508DC6 8D45D4                  lea eax, dword ptr [ebp-2C]
:00508DC9 8B0D50CB5000            mov ecx, dword ptr [0050CB50] 

* Possible StringData Ref from Data Obj ->"TNND"
                                 |
:00508DCF BA74905000              mov edx, 00509074
:00508DD4 E883B2EFFF              call 0040405C
:00508DD9 8B55D4                  mov edx, dword ptr [ebp-2C]
:00508DDC 58                      pop eax
:00508DDD E83EB3EFFF              call 00404120
:00508DE2 0F852D010000            jne 00508F15
:00508DE8 8D45D0                  lea eax, dword ptr [ebp-30] 

* Possible StringData Ref from Data Obj ->"Fuck"
                                 |
:00508DEB B984905000              mov ecx, 00509084
:00508DF0 8B1550CB5000            mov edx, dword ptr [0050CB50]
:00508DF6 E861B2EFFF              call 0040405C
:00508DFB 8B45D0                  mov eax, dword ptr [ebp-30]
:00508DFE 50                      push eax
:00508DFF 8D4DCC                  lea ecx, dword ptr [ebp-34]
:00508E02 BA54CB5000              mov edx, 0050CB54
:00508E07 8BC3                    mov eax, ebx
:00508E09 E806030000              call 00509114
:00508E0E 8D45CC                  lea eax, dword ptr [ebp-34] 

* Possible StringData Ref from Data Obj ->"Fuck"
                                 |
:00508E11 BA84905000              mov edx, 00509084
:00508E16 E8FDB1EFFF              call 00404018
:00508E1B 8B55CC                  mov edx, dword ptr [ebp-34]
:00508E1E 58                      pop eax
:00508E1F E8FCB2EFFF              call 00404120
:00508E24 0F85EB000000            jne 00508F15
:00508E2A 8D4DC8                  lea ecx, dword ptr [ebp-38]
:00508E2D BA6CF05000              mov edx, 0050F06C
:00508E32 8BC3                    mov eax, ebx
:00508E34 E8DB020000              call 00509114
                                 ====>關鍵CALL!進入! 

:00508E39 8B55C8                  mov edx, dword ptr [ebp-38]
                                 ====>EDX=388411845 

:00508E3C A170F05000              mov eax, dword ptr [0050F070]
                                 ====>爆破點! 

:00508E41 E8DAB2EFFF              call 00404120
                                 ====>比較一次 

:00508E46 0F84C2000000            je 00508F0E
                                 ====>是否已經註冊? 

:00508E4C A170F05000              mov eax, dword ptr [0050F070] 

* Possible StringData Ref from Data Obj ->"37028513518625167"
                                 |
:00508E51 BA94905000              mov edx, 00509094
:00508E56 E8C5B2EFFF              call 00404120
:00508E5B 0F84AD000000            je 00508F0E
:00508E61 C60574F0500000          mov byte ptr [0050F074], 00
:00508E68 8D4DC4                  lea ecx, dword ptr [ebp-3C]
:00508E6B 33D2                    xor edx, edx
:00508E6D 8B83E8020000            mov eax, dword ptr [ebx+000002E8]
:00508E73 E808D3FAFF              call 004B6180
                                 ====>彈出註冊視窗 

:00508E78 8B55C4                  mov edx, dword ptr [ebp-3C]
                                 ====>EDX=13572468          試煉碼 

:00508E7B B878F05000              mov eax, 0050F078
:00508E80 E85FAFEFFF              call 00403DE4
:00508E85 8B0D78F05000            mov ecx, dword ptr [0050F078] 

* Possible StringData Ref from Data Obj ->"LocalID"
                                 |
:00508E8B BA44905000              mov edx, 00509044
:00508E90 8B83E0020000            mov eax, dword ptr [ebx+000002E0]
:00508E96 E81D9EFAFF              call 004B2CB8
:00508E9B 8D45C0                  lea eax, dword ptr [ebp-40]
:00508E9E 50                      push eax 

* Possible StringData Ref from Data Obj ->"370285"
                                 |
:00508E9F B954905000              mov ecx, 00509054 

* Possible StringData Ref from Data Obj ->"LocalM"
                                 |
:00508EA4 BA20905000              mov edx, 00509020
:00508EA9 8B83E0020000            mov eax, dword ptr [ebx+000002E0]
:00508EAF E8DC9BFAFF              call 004B2A90
:00508EB4 8B55C0                  mov edx, dword ptr [ebp-40]
:00508EB7 B86CF05000              mov eax, 0050F06C
:00508EBC E823AFEFFF              call 00403DE4
:00508EC1 8D45BC                  lea eax, dword ptr [ebp-44]
:00508EC4 50                      push eax 

* Possible StringData Ref from Data Obj ->"8499517"
                                 |
:00508EC5 B964905000              mov ecx, 00509064 

* Possible StringData Ref from Data Obj ->"LocalID"
                                 |
:00508ECA BA44905000              mov edx, 00509044
:00508ECF 8B83E0020000            mov eax, dword ptr [ebx+000002E0]
:00508ED5 E8B69BFAFF              call 004B2A90
:00508EDA 8B55BC                  mov edx, dword ptr [ebp-44]
:00508EDD B870F05000              mov eax, 0050F070
:00508EE2 E8FDAEEFFF              call 00403DE4
:00508EE7 8D4DB8                  lea ecx, dword ptr [ebp-48]
:00508EEA BA6CF05000              mov edx, 0050F06C
:00508EEF 8BC3                    mov eax, ebx
:00508EF1 E81E020000              call 00509114
:00508EF6 8B55B8                  mov edx, dword ptr [ebp-48]
                                 ====>EDX=388411845           註冊碼 

:00508EF9 A170F05000              mov eax, dword ptr [0050F070]
                                 ====>EAX=13572468            試煉碼 

:00508EFE E81DB2EFFF              call 00404120
                                 ====>比較CALL! 

:00508F03 7510                    jne 00508F15
:00508F05 8BC3                    mov eax, ebx
:00508F07 E8F867F4FF              call 0044F704
:00508F0C EB07                    jmp 00508F15 

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00508E46(C), :00508E5B(C)
|
:00508F0E C60574F0500001          mov byte ptr [0050F074], 01 

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00508D9D(C), :00508DE2(C), :00508E24(C), :00508F03(C), :00508F0C(U)
|
:00508F15 B201                    mov dl, 01
:00508F17 8B8324030000            mov eax, dword ptr [ebx+00000324]
:00508F1D E872D3F4FF              call 00456294
:00508F22 803D74F0500000          cmp byte ptr [0050F074], 00
:00508F29 740D                    je 00508F38
:00508F2B 33D2                    xor edx, edx
:00508F2D 8B8324030000            mov eax, dword ptr [ebx+00000324]
:00508F33 E85CD3F4FF              call 00456294 

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00508D10(U), :00508F29(C)
|
:00508F38 33C0                    xor eax, eax
:00508F3A 5A                      pop edx
:00508F3B 59                      pop ecx
:00508F3C 59                      pop ecx
:00508F3D 648910                  mov dword ptr fs:[eax], edx
:00508F40 685A8F5000              push 00508F5A 

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00508F58(U)
|
:00508F45 8D45B8                  lea eax, dword ptr [ebp-48]
:00508F48 BA12000000              mov edx, 00000012
:00508F4D E862AEEFFF              call 00403DB4
:00508F52 C3                      ret 



————————————————————————————————— 
進入關鍵CALL:00508E34   call 00509114 


* Referenced by a CALL at Addresses:
|:00508D82   , :00508DAD   , :00508E09   , :00508E34   , :00508EF1   
|:005092E4   
|
:00509114 55                      push ebp
:00509115 8BEC                    mov ebp, esp
:00509117 6A00                    push 00000000
:00509119 6A00                    push 00000000
:0050911B 6A00                    push 00000000
:0050911D 6A00                    push 00000000
:0050911F 6A00                    push 00000000
:00509121 6A00                    push 00000000
:00509123 53                      push ebx
:00509124 56                      push esi
:00509125 57                      push edi
:00509126 894DFC                  mov dword ptr [ebp-04], ecx
:00509129 8BF2                    mov esi, edx
:0050912B 8BF8                    mov edi, eax
:0050912D 33C0                    xor eax, eax
:0050912F 55                      push ebp
:00509130 68EB915000              push 005091EB
:00509135 64FF30                  push dword ptr fs:[eax]
:00509138 648920                  mov dword ptr fs:[eax], esp
:0050913B 8D45F8                  lea eax, dword ptr [ebp-08]
:0050913E E84DACEFFF              call 00403D90
:00509143 8B06                    mov eax, dword ptr [esi]
:00509145 E8C6AEEFFF              call 00404010
:0050914A 8BD8                    mov ebx, eax
:0050914C 83FB01                  cmp ebx, 00000001
:0050914F 7C22                    jl 00509173 

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00509171(C)
|
:00509151 8D45F0                  lea eax, dword ptr [ebp-10]
:00509154 50                      push eax
:00509155 8B06                    mov eax, dword ptr [esi]
                                 ====>EAX=555490825 

:00509157 B901000000              mov ecx, 00000001
:0050915C 8BD3                    mov edx, ebx
:0050915E E8B5B0EFFF              call 00404218
:00509163 8B55F0                  mov edx, dword ptr [ebp-10]
:00509166 8D45F8                  lea eax, dword ptr [ebp-08]
:00509169 E8AAAEEFFF              call 00404018
:0050916E 4B                      dec ebx
:0050916F 85DB                    test ebx, ebx
:00509171 75DE                    jne 00509151
                                 ====>迴圈將555490825倒序排列 

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0050914F(C)
|
:00509173 8D4DEC                  lea ecx, dword ptr [ebp-14]
:00509176 8D55F8                  lea edx, dword ptr [ebp-08]
                                 ====>EDX=528094555         倒序的結果 

:00509179 8BC7                    mov eax, edi
:0050917B E87C000000              call 005091FC
                                 ====>加法CALL!進入! 

:00509180 8B55EC                  mov edx, dword ptr [ebp-14]
                                 ====>EDX=548114883 

:00509183 8D45F8                  lea eax, dword ptr [ebp-08]
:00509186 E89DACEFFF              call 00403E28
:0050918B 8D45F4                  lea eax, dword ptr [ebp-0C]
:0050918E E8FDABEFFF              call 00403D90
:00509193 8B45F8                  mov eax, dword ptr [ebp-08]
:00509196 E875AEEFFF              call 00404010
:0050919B 8BD8                    mov ebx, eax
:0050919D 83FB01                  cmp ebx, 00000001
:005091A0 7C23                    jl 005091C5 

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:005091C3(C)
|
:005091A2 8D45E8                  lea eax, dword ptr [ebp-18]
:005091A5 50                      push eax
:005091A6 B901000000              mov ecx, 00000001
:005091AB 8BD3                    mov edx, ebx
:005091AD 8B45F8                  mov eax, dword ptr [ebp-08]
:005091B0 E863B0EFFF              call 00404218
:005091B5 8B55E8                  mov edx, dword ptr [ebp-18]
:005091B8 8D45F4                  lea eax, dword ptr [ebp-0C]
:005091BB E858AEEFFF              call 00404018
:005091C0 4B                      dec ebx
:005091C1 85DB                    test ebx, ebx
:005091C3 75DD                    jne 005091A2
                                 ====>這個迴圈將548114883倒序排列388411845 

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:005091A0(C)
|
:005091C5 8B45FC                  mov eax, dword ptr [ebp-04]
:005091C8 8B55F4                  mov edx, dword ptr [ebp-0C]
                                 ====>EDX=388411845         這就是註冊碼! 

:005091CB E814ACEFFF              call 00403DE4
:005091D0 33C0                    xor eax, eax
:005091D2 5A                      pop edx
:005091D3 59                      pop ecx
:005091D4 59                      pop ecx
:005091D5 648910                  mov dword ptr fs:[eax], edx
:005091D8 68F2915000              push 005091F2 

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:005091F0(U)
|
:005091DD 8D45E8                  lea eax, dword ptr [ebp-18]
:005091E0 BA05000000              mov edx, 00000005
:005091E5 E8CAABEFFF              call 00403DB4
:005091EA C3                      ret 


—————————————————————————————————
進入加法CALL:0050917B   call  005091FC 


* Referenced by a CALL at Address:
|:0050917B   
|
:005091FC 53                      push ebx
:005091FD 56                      push esi
:005091FE 8BF1                    mov esi, ecx
:00509200 8BDA                    mov ebx, edx
:00509202 8B03                    mov eax, dword ptr [ebx]
                                 ====>EAX=528094555 

:00509204 E8BB1AF0FF              call 0040ACC4
                                 ====>轉換成浮點數 

:00509209 D80520925000            fadd dword ptr [00509220]
====>ST=528094555.00000000000 + 20020328=548114883.00000000000 


:0050920F 83C4F4                  add esp, FFFFFFF4
:00509212 DB3C24                  fstp tbyte ptr [esp]
:00509215 9B                      wait
:00509216 8BC6                    mov eax, esi
:00509218 E89718F0FF              call 0040AAB4
:0050921D 5E                      pop esi
:0050921E 5B                      pop ebx
:0050921F C3                      ret 


—————————————————————————————————
【算 法  總 結】: 


1、取硬碟序列號的10進位制值555490825作為機器碼 

2、倒序排列機器碼:528094555 

3、528094555.00000000000 + 20020328=548114883.00000000000 

4、倒序排列548114883,得出388411845     就是註冊碼  ^O^  ^O^ 


————————————————————————————————— 
【完 美  爆 破】: 


00508E3C A170F05000              mov eax, dword ptr [0050F070]
 改為:  8B45C89090              mov eax, dword ptr [ebp-38]  補2個NOP
 與00508E39處相映成趣。 

————————————————————————————————— 
【KeyMake之{89th}記憶體序號產生器】: 


中斷地址:00508EFE
中斷次數:1
第一位元組:E8
指令長度:5 

記憶體方式:EDX               

————————————————————————————————— 
【註冊資訊儲存】: 


REGEDIT4 

[HKEY_LOCAL_MACHINE\Software\RenYuanSoft\HYDIC]
"LocalM"="|||{€wy|棬漢徑公"
"LocalID"="z{xx{|棬漢徑公" 

————————————————————————————————— 
【整        理】: 


機器碼:555490825
註冊碼:388411845 

—————————————————————————————————
   
                               
        ,     _/ 
       /| _.-~/            \_     ,        青春都一餉
      ( /~   /              \~-._ |\
      `\\  _/                \   ~\ )          忍把浮名 
  _-~~~-.)  )__/;;,.          \_  //'
 /'_,\   --~   \ ~~~-  ,;;\___(  (.-~~~-.        換了破解輕狂
`~ _( ,_..--\ (     ,;'' /    ~--   /._`\ 
 /~~//'   /' `~\         ) /--.._, )_  `~
 "  `~"  "      `"      /~'`\    `\\~~\   
                        "     "   "~'  "" 

    

                   Cracked By 巢水工作坊——fly [OCN][FCG] 

                          2003-05-31  23:00


相關文章