漢語寶典 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
相關文章
- 面試寶典2017-12-13面試
- Elasticsearch查詢及聚合類DSL語句寶典2022-12-27Elasticsearch
- Java 面試寶典2018-09-09Java面試
- PHP面試寶典2017-06-07PHP面試
- iOS 面試寶典2017-12-21iOS面試
- 詞典翻譯 英譯漢2018-07-21
- Spring葵花寶典2020-07-24Spring
- C++面試寶典2018-09-11C++面試
- FAQ寶典之RancherServer2017-11-12Server
- Java面試葵花寶典2013-11-25Java面試
- C#漢字轉漢語拼音2021-12-21C#
- Oracle面試寶典-鎖篇2020-03-04Oracle面試
- Node.js 葵花寶典2019-04-04Node.js
- Oracle 面試寶典-RAC篇2021-05-16Oracle面試
- Oracle 面試寶典-UNDO篇2021-06-14Oracle面試
- Oracle 面試寶典-DG篇2021-07-25Oracle面試
- 前端學習文件寶典2018-12-15前端
- DevOps 初學者寶典2023-11-29dev
- 是否需要漢語程式語言2007-11-30
- 漢語注音符號2024-07-29符號
- Kotlin 語言入門寶典 | Android 開發者 FAQ Vol.52017-07-21KotlinAndroid
- 電子書下載:C語言程式開發範例寶典2014-08-17C語言
- Oracle面試寶典-等待事件篇2020-03-11Oracle面試事件
- Oracle面試寶典-引數篇2020-03-03Oracle面試
- Oracle面試寶典-事務篇2020-03-02Oracle面試
- 大資料面試寶典五2020-05-15大資料面試
- IT技術跳槽的葵花寶典2019-02-19
- Java面試寶典-20172018-08-18Java面試
- Linux寶典(第9版)2018-10-30Linux
- JAVA葵花寶典(基礎版)2020-12-20Java
- Redis面試寶典-持久化篇2022-07-30Redis面試持久化
- MySQL面試寶典-檔案篇2022-04-10MySql面試
- Web前端面試寶典(最新)2018-03-04Web前端面試
- 網路管理實戰寶典2017-11-11
- vc入門寶典(十) (轉)2007-11-16
- vc入門寶典(九) (轉)2007-08-15
- 漢語是最了不起的語言2008-01-03
- GitHub - hefengbao/jingmo: 『京墨』開源的中華文化寶典 APP,詩(詞)文(名句)、漢字、成語、詞語、歇後語、繞口令、傳統節日、傳統色、節氣、人物等。2024-07-21GithubAPP