DeTitle V1.33簡單演算法分析
DeTitle V1.33簡單演算法分析
軟體名稱:DeTitle V1.33
軟體介紹:在很多影片的開頭與結尾處都會播放標題或說明性字幕,不過一般的錄放影裝置是無法產生這些字幕的,必須要和其它的字幕來源合成才可以。DeTitle
是一套專業的標題字幕產生程式,可以使用各種方式與效果製作標題字幕,使影片更完美。
破解人:BurSH (於2003.8.6)
所屬組織:FCG-BCG-OCN-DFCG
破解工具:Trw2000 1.23
///////////////////////
/ 尋找正確的註冊碼……/
///////////////////////
軟體是分別用八個文字框來讓我們輸入註冊碼的,用一個Label框來提示註冊失敗,較有意思:P
但還是用老辦法來搞定---萬能斷點~~~^^.任意輸入使用者名稱和註冊碼後,CTRL-N撥出Trw2000,下斷點"bpx hmemcpy",點選軟體的Register按鈕trw立刻就攔住了!用Pmodule命令回到軟體領空,按F12七八次,再換F10就走到下面這裡了------
016F:004752A2 FFB5F8FEFFFF
PUSH DWORD [EBP+FFFFFEF8] //我們在這裡……
016F:004752A8 8D95F4FEFFFF LEA EDX,[EBP+FFFFFEF4]
//F10慢慢往下走...過Call後隨便D一D暫存器的值看看:P
016F:004752AE 8B83E0020000 MOV EAX,[EBX+02E0]
016F:004752B4 E8BB80FBFF CALL 0042D374
016F:004752B9 FFB5F4FEFFFF PUSH DWORD [EBP+FFFFFEF4]
016F:004752BF 8D95F0FEFFFF LEA EDX,[EBP+FFFFFEF0]
016F:004752C5 8B83E4020000 MOV EAX,[EBX+02E4]
016F:004752CB E8A480FBFF CALL 0042D374
016F:004752D0 FFB5F0FEFFFF PUSH DWORD [EBP+FFFFFEF0]
016F:004752D6 8D95ECFEFFFF LEA EDX,[EBP+FFFFFEEC]
016F:004752DC 8B83E8020000 MOV EAX,[EBX+02E8]
016F:004752E2 E88D80FBFF CALL 0042D374
016F:004752E7 FFB5ECFEFFFF PUSH DWORD [EBP+FFFFFEEC]
016F:004752ED 8D95E8FEFFFF LEA EDX,[EBP+FFFFFEE8]
016F:004752F3 8B83EC020000 MOV EAX,[EBX+02EC]
016F:004752F9 E87680FBFF CALL 0042D374
016F:004752FE FFB5E8FEFFFF PUSH DWORD [EBP+FFFFFEE8]
016F:00475304 8D95E4FEFFFF LEA EDX,[EBP+FFFFFEE4]
016F:0047530A 8B83F0020000 MOV EAX,[EBX+02F0]
016F:00475310 E85F80FBFF CALL 0042D374
016F:00475315 FFB5E4FEFFFF PUSH DWORD [EBP+FFFFFEE4]
016F:0047531B 8D95E0FEFFFF LEA EDX,[EBP+FFFFFEE0]
016F:00475321 8B83F4020000 MOV EAX,[EBX+02F4]
016F:00475327 E84880FBFF CALL 0042D374
016F:0047532C FFB5E0FEFFFF PUSH DWORD [EBP+FFFFFEE0]
016F:00475332 8D95DCFEFFFF LEA EDX,[EBP+FFFFFEDC]
016F:00475338 8B83F8020000 MOV EAX,[EBX+02F8]
016F:0047533E E83180FBFF CALL 0042D374
//上面這8個call是依次取出8個註冊框中的字元
016F:00475343 FFB5DCFEFFFF PUSH DWORD [EBP+FFFFFEDC]
016F:00475349 8D85FCFEFFFF LEA EAX,[EBP+FFFFFEFC]
016F:0047534F BA08000000 MOV EDX,08
016F:00475354 E863ECF8FF CALL 00403FBC
//將輸入的8位註冊碼連起來
016F:00475359 8B95FCFEFFFF MOV EDX,[EBP+FFFFFEFC]
//放到EDX
016F:0047535F 8D8500FFFFFF LEA EAX,[EBP+FFFFFF00]
016F:00475365 B9FF000000 MOV ECX,FF
016F:0047536A E869EBF8FF CALL 00403ED8
//取註冊碼位數,一定是08樂:P
016F:0047536F 8D9500FFFFFF LEA EDX,[EBP+FFFFFF00]
016F:00475375 8D8304030000 LEA EAX,[EBX+0304]
016F:0047537B B108 MOV
CL,08
016F:0047537D E8EED8F8FF CALL 00402C70
016F:00475382 8D85D4FEFFFF LEA EAX,[EBP+FFFFFED4]
//將位數"08"與註冊碼連起來
016F:00475388 8D9304030000 LEA EDX,[EBX+0304]
//放到EDX
016F:0047538E E80DEBF8FF CALL 00403EA0
016F:00475393 8B85D4FEFFFF MOV EAX,[EBP+FFFFFED4]
…………
016F:004753E4 8BC6
MOV EAX,ESI
016F:004753E6 E801E1FEFF CALL 004634EC
016F:004753EB BA1C574700 MOV EDX,0047571C
//EDX="detitle.key"
016F:004753F0 8B83FC020000 MOV EAX,[EBX+02FC]
016F:004753F6 E811E1FEFF CALL 0046350C
//讀取註冊檔案裡的內容並解碼(重啟校驗用的,這裡不管它)
016F:004753FB 33D2 XOR
EDX,EDX
016F:004753FD 8B83C8020000 MOV EAX,[EBX+02C8]
016F:00475403 E89C7FFBFF CALL 0042D3A4
016F:00475408 33D2 XOR
EDX,EDX
016F:0047540A 8B83D8020000 MOV EAX,[EBX+02D8]
016F:00475410 E88F7FFBFF CALL 0042D3A4
016F:00475415 BA28574700 MOV EDX,00475728
016F:0047541A 8B83FC020000 MOV EAX,[EBX+02FC]
016F:00475420 E8E3DFFEFF CALL 00463408
016F:00475425 C783000300000350+MOV DWORD [EBX+0300],4F525003
016F:0047542F 8D85C8FEFFFF LEA EAX,[EBP+FFFFFEC8]
016F:00475435 50 PUSH
EAX
016F:00475436 8D95FCFEFFFF LEA EDX,[EBP+FFFFFEFC]
016F:0047543C 8B83C4020000 MOV EAX,[EBX+02C4]
016F:00475442 E82D7FFBFF CALL 0042D374
//取出使用者名稱
016F:00475447 8B85FCFEFFFF MOV EAX,[EBP+FFFFFEFC]
//放入EAX
016F:0047544D 8D95D4FEFFFF LEA EDX,[EBP+FFFFFED4]
016F:00475453 E8882CF9FF CALL 004080E0
016F:00475458 FFB5D4FEFFFF PUSH DWORD [EBP+FFFFFED4]
//使用者名稱入棧
016F:0047545E 6834574700 PUSH DWORD 00475734
016F:00475463 8D85C4FEFFFF LEA EAX,[EBP+FFFFFEC4]
016F:00475469 8D9300030000 LEA EDX,[EBX+0300]
016F:0047546F E82CEAF8FF CALL 00403EA0
016F:00475474 FFB5C4FEFFFF PUSH DWORD [EBP+FFFFFEC4]
016F:0047547A 8D85D8FEFFFF LEA EAX,[EBP+FFFFFED8]
016F:00475480 BA03000000 MOV EDX,03
016F:00475485 E832EBF8FF CALL 00403FBC
//將使用者名稱和字元" PRO"連起來
016F:0047548A 8B95D8FEFFFF MOV EDX,[EBP+FFFFFED8]
//放入EDX
016F:00475490 8D8500FFFFFF LEA EAX,[EBP+FFFFFF00]
016F:00475496 B9FF000000 MOV ECX,FF
016F:0047549B E838EAF8FF CALL 00403ED8
016F:004754A0 8D9500FFFFFF LEA EDX,[EBP+FFFFFF00]
//EDX=後面連上" PRO"的使用者名稱
016F:004754A6 8B83FC020000 MOV EAX,[EBX+02FC]
016F:004754AC 8A8875030000 MOV CL,[EAX+0375]
016F:004754B2 8B83FC020000 MOV EAX,[EBX+02FC]
016F:004754B8 E83FE2FEFF CALL 004636FC
//關鍵Call!!!!F8跟進~~~~~
016F:004754BD 8D95FCFEFFFF LEA EDX,[EBP+FFFFFEFC]
016F:004754C3 8B83C4020000 MOV EAX,[EBX+02C4]
016F:004754C9 E8A67EFBFF CALL 0042D374
016F:004754CE 8B85FCFEFFFF MOV EAX,[EBP+FFFFFEFC]
016F:004754D4 8D95D4FEFFFF LEA EDX,[EBP+FFFFFED4]
016F:004754DA E8012CF9FF CALL 004080E0
016F:004754DF FFB5D4FEFFFF PUSH DWORD [EBP+FFFFFED4]
016F:004754E5 6834574700 PUSH DWORD 00475734
016F:004754EA 8D85C4FEFFFF LEA EAX,[EBP+FFFFFEC4]
016F:004754F0 8D9300030000 LEA EDX,[EBX+0300]
016F:004754F6 E8A5E9F8FF CALL 00403EA0
016F:004754FB FFB5C4FEFFFF PUSH DWORD [EBP+FFFFFEC4]
016F:00475501 8D85D8FEFFFF LEA EAX,[EBP+FFFFFED8]
016F:00475507 BA03000000 MOV EDX,03
016F:0047550C E8ABEAF8FF CALL 00403FBC
016F:00475511 8B95D8FEFFFF MOV EDX,[EBP+FFFFFED8]
016F:00475517 8D8500FFFFFF LEA EAX,[EBP+FFFFFF00]
016F:0047551D B9FF000000 MOV ECX,FF
016F:00475522 E8B1E9F8FF CALL 00403ED8
016F:00475527 8D8500FFFFFF LEA EAX,[EBP+FFFFFF00]
016F:0047552D 50 PUSH
EAX
016F:0047552E BA38574700 MOV EDX,00475738
016F:00475533 8D85C8FEFFFF LEA EAX,[EBP+FFFFFEC8]
//EAX=前面連著"$"的正確註冊碼!
016F:00475539 E816D7F8FF CALL 00402C54
016F:0047553E 8D9304030000 LEA EDX,[EBX+0304]
016F:00475544 8D85C8FEFFFF LEA EAX,[EBP+FFFFFEC8]
016F:0047554A B109 MOV
CL,09
016F:0047554C E8D3D6F8FF CALL 00402C24
//將字元"$"與輸入的註冊碼連起來
016F:00475551 8D8DC8FEFFFF LEA ECX,[EBP+FFFFFEC8]
016F:00475557 8B83FC020000 MOV EAX,[EBX+02FC]
016F:0047555D 5A POP
EDX
016F:0047555E E845E3FEFF CALL 004638A8
//比較Call,有興趣的進去看看,是逐位比較的.
016F:00475563 84C0 TEST
AL,AL
016F:00475565 0F8423010000 JZ NEAR 0047568E
//註冊碼正確的話就繼續往下走...然後它會告訴你註冊成功樂!^^
016F:0047556B 8D95F8FEFFFF LEA EDX,[EBP+FFFFFEF8]
016F:00475571 8B83C4020000 MOV EAX,[EBX+02C4]
016F:00475577 E8F87DFBFF CALL 0042D374
016F:0047557C FFB5F8FEFFFF PUSH DWORD [EBP+FFFFFEF8]
016F:00475582 6834574700 PUSH DWORD 00475734
016F:00475587 8D85D8FEFFFF LEA EAX,[EBP+FFFFFED8]
016F:0047558D 8D9300030000 LEA EDX,[EBX+0300]
016F:00475593 E808E9F8FF CALL 00403EA0
016F:00475621 E8A624FAFF CALL 00417ACC
////////////////////////////////////////////
/ 在4754B8用F8跟入關鍵Call,我們來到這裡……/
////////////////////////////////////////////
016F:004636FC 55
PUSH EBP
016F:004636FD 8BEC MOV
EBP,ESP
016F:004636FF 81C46CFFFFFF ADD ESP,FFFFFF6C
016F:00463705 53 PUSH
EBX
016F:00463706 56 PUSH
ESI
016F:00463707 57 PUSH
EDI
016F:00463708 8BF2 MOV
ESI,EDX
016F:0046370A 8D7DC2 LEA
EDI,[EBP-3E]
016F:0046370D 51 PUSH
ECX
016F:0046370E 33C9 XOR
ECX,ECX
016F:00463710 8A0E MOV
CL,[ESI]
016F:00463712 80F932 CMP
CL,32
016F:00463715 7202 JC
00463719
016F:00463717 B132 MOV
CL,32
016F:00463719 880F MOV
[EDI],CL
016F:0046371B 46 INC
ESI
016F:0046371C 47 INC
EDI
016F:0046371D F3A4 REP MOVSB
016F:0046371F 59 POP
ECX
016F:00463720 884DFF MOV
[EBP-01],CL
016F:00463723 8BD8 MOV
EBX,EAX
016F:00463725 33C0 XOR
EAX,EAX
016F:00463727 8A45C2 MOV
AL,[EBP-3E]
016F:0046372A 40 INC
EAX
016F:0046372B 83F832 CMP
EAX,BYTE +32
016F:0046372E 7F0E JG
0046373E
016F:00463730 8D5405C2 LEA EDX,[EBP+EAX-3E]
016F:00463734 C6020E MOV
BYTE [EDX],0E //將十六進位制E,使用者名稱連上" PRO"的後面!!
016F:00463737 40 INC
EAX
016F:00463738 42 INC
EDX
016F:00463739 83F833 CMP
EAX,BYTE +33 //表示將要給使用者名稱後面連上33H個E!
016F:0046373C 75F6 JNZ
00463734 //向上構成一個小迴圈
//小結:上面這段程式碼對使用者名稱的處理,得到了形如下面這樣的形式:
07 61 61 61 20 50 52 4F 0E 0E 0E 0E 0E 0E 0E 0E ☆XXX PRO........
0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E ................
0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E ................
我們把這段設為Name_temp!
(注: XXX=使用者名稱 , ☆=使用者名稱+" PRO"的長度 , 總共有33H個"0E"
)
016F:0046373E 8D8D6CFFFFFF LEA ECX,[EBP+FFFFFF6C]
016F:00463744 8B9324020000 MOV EDX,[EBX+0224]
016F:0046374A 8BC3 MOV
EAX,EBX
016F:0046374C E853FEFFFF CALL 004635A4
//得到一個固定字串"$8181404F"
016F:00463751 8D956CFFFFFF LEA EDX,[EBP+FFFFFF6C]
016F:00463757 8D45F5 LEA
EAX,[EBP-0B]
016F:0046375A B109 MOV
CL,09
016F:0046375C E80FF5F9FF CALL 00402C70
016F:00463761 B80A000000 MOV EAX,0A
016F:00463766 8D55F5 LEA
EDX,[EBP-0B] //EDX=固定字串"$8181404F"
016F:00463769 8DB57BFFFFFF LEA ESI,[EBP+FFFFFF7B]
016F:0046376F 8A0A MOV
CL,[EDX] //逐位取出"$8181404F"
016F:00463771 880E MOV
[ESI],CL //放入ESI
016F:00463773 46 INC
ESI
016F:00463774 42 INC
EDX
016F:00463775 48 DEC
EAX
016F:00463776 75F7 JNZ
0046376F
016F:00463778 B833000000 MOV EAX,33
016F:0046377D 8D55C2 LEA
EDX,[EBP-3E] //將Name_temp放入EDX!
016F:00463780 8D7585 LEA
ESI,[EBP-7B]
016F:00463783 8A0A MOV
CL,[EDX] //依次取出Name_temp的值
016F:00463785 880E MOV
[ESI],CL //放在固定字串"$8181404F"的後面
016F:00463787 46 INC
ESI
016F:00463788 42 INC
EDX
016F:00463789 48 DEC
EAX
//迴圈33H次
016F:0046378A 75F7 JNZ
00463783 //向上構成一個迴圈
//小結:上面這段程式碼對使用者名稱的處理,得到了形如下面這樣的形式:
09 24 38 31 38 31 34 30 34 46 07 61 61 61 20 50 .$8181404F☆XXX P
52 4F 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E RO..............
0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E ................
0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E
.............
我們把這段設為Name_temp1!
016F:0046378C 8D8D6CFFFFFF LEA ECX,[EBP+FFFFFF6C]
016F:00463792 8B9328020000 MOV EDX,[EBX+0228]
016F:00463798 8BC3 MOV
EAX,EBX
016F:0046379A E805FEFFFF CALL 004635A4
//得到另一個固定字串"$81B41717"
016F:0046379F 8D956CFFFFFF LEA EDX,[EBP+FFFFFF6C]
016F:004637A5 8D45F5 LEA
EAX,[EBP-0B]
016F:004637A8 B109 MOV
CL,09
016F:004637AA E8C1F4F9FF CALL 00402C70
016F:004637AF 807DFF00 CMP BYTE
[EBP-01],00
016F:004637B3 7417 JZ
004637CC
016F:004637B5 B80A000000 MOV EAX,0A
016F:004637BA 8D55F5 LEA
EDX,[EBP-0B] //EDX=固定字串"$81B41717"
016F:004637BD 8D75B8 LEA
ESI,[EBP-48]
016F:004637C0 8A0A MOV
CL,[EDX] //逐位取出固定字串"$81B41717"
016F:004637C2 49 DEC
ECX
//逐位減一
016F:004637C3 880E MOV
[ESI],CL //放到Name_temp1的後面!
016F:004637C5 46 INC
ESI
016F:004637C6 42 INC
EDX
016F:004637C7 48 DEC
EAX
//迴圈10次
016F:004637C8 75F6 JNZ
004637C0 //向上構成迴圈
016F:004637CA EB14 JMP
SHORT 004637E0
//小結:到次我們得到了對使用者名稱處理後的最終結果:
09 24 38 31 38 31 34 30 34 46 07 61 61 61 20 50 .$8181404F☆XXX P
52 4F 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E RO..............
0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E ................
0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 08 23 37 ..............#7
30 41 33 30 36 30 36 07 61 61 61 20 50 52 4F 0E 0A30606☆XXX PRO.
0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E ................
0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E ................
0E 0E 0E 0E 0E 0E 0E 0E 0E 0E
..........
除了☆XXX,其他都是固定的!這最終結果設為Name_result!
016F:004637CC B80A000000
MOV EAX,0A
016F:004637D1 8D55F5 LEA
EDX,[EBP-0B]
016F:004637D4 8D75B8 LEA
ESI,[EBP-48]
016F:004637D7 8A0A MOV
CL,[EDX]
016F:004637D9 880E MOV
[ESI],CL
016F:004637DB 46 INC
ESI
016F:004637DC 42 INC
EDX
016F:004637DD 48 DEC
EAX
016F:004637DE 75F7 JNZ
004637D7
016F:004637E0 8B9334030000 MOV EDX,[EBX+0334]
//EDX=110FAF,這是計算註冊碼的一個引數!設為sn_temp!
016F:004637E6 8D8D7BFFFFFF LEA ECX,[EBP+FFFFFF7B]
//ECX=Name_result!注意了!
016F:004637EC 8BC3 MOV
EAX,EBX
016F:004637EE E869FDFFFF CALL 0046355C
//裡面是註冊碼的演算法,關鍵!!跟入!
016F:004637F3 8BD0 MOV
EDX,EAX
016F:004637F5 8D8D6CFFFFFF LEA ECX,[EBP+FFFFFF6C]
//這裡? EDX,十六進位制的值就是註冊碼!!!!
016F:004637FB 8BC3 MOV
EAX,EBX
016F:004637FD E8A2FDFFFF CALL 004635A4
016F:00463802 8D956CFFFFFF LEA EDX,[EBP+FFFFFF6C]
016F:00463808 8B4508 MOV
EAX,[EBP+08]
016F:0046380B B109 MOV
CL,09
016F:0046380D E85EF4F9FF CALL 00402C70
016F:00463812 5F POP
EDI
016F:00463813 5E POP
ESI
016F:00463814 5B POP
EBX
016F:00463815 8BE5 MOV
ESP,EBP
016F:00463817 5D POP
EBP
016F:00463818 C20400 RET
04
////////////////////////////////////////////////
/ 在4637EE用F8跟入關鍵演算法Call,我們來到看到……/
////////////////////////////////////////////////
016F:0046355C 53
PUSH EBX
016F:0046355D 56 PUSH
ESI
016F:0046355E 57 PUSH
EDI
016F:0046355F 83C4B8 ADD
ESP,BYTE -48
016F:00463562 8BF1 MOV
ESI,ECX
016F:00463564 8D3C24 LEA
EDI,[ESP]
016F:00463567 B911000000 MOV ECX,11
016F:0046356C F3A5 REP MOVSD
016F:0046356E 66A5 MOVSW
016F:00463570 A4 MOVSB
016F:00463571 B147 MOV
CL,47
016F:00463573 8BC4 MOV
EAX,ESP //EAX=Name_result!
016F:00463575 8BDA MOV
EBX,EDX //EBX=sn_temp!
016F:00463577 C1EB08 SHR
EBX,08 //EBX=EBX/(2^8)
016F:0046357A 81E3FFFFFF00 AND EBX,00FFFFFF
//EBX= and FFFFFF
016F:00463580 0FB630 MOVZX ESI,BYTE
[EAX] //依次取出Name_result的值放入ESI!
016F:00463583 33D6 XOR
EDX,ESI //sn_temp=sn_temp
xor ESI
016F:00463585 81E2FF000000 AND EDX,FF
//sn_temp=sn_temp and FF(即取低二位)
016F:0046358B 8B1495F05C4800 MOV EDX,[EDX*4+00485CF0]
//查表!4個位元組4個位元組的從密碼錶中取值,放入sn_temp……
//00485CF0處的密碼錶好長,有1kb(1024=256*4)狂暈,這裡就不copy來了……-_-0
016F:00463592 33DA
XOR EBX,EDX
//ebx=sn_temp xor ebx
016F:00463594 8BD3 MOV
EDX,EBX //sn_temp=ebx
016F:00463596 40 INC
EAX
016F:00463597 FEC9 DEC
CL //迴圈47H次!
016F:00463599 75DA JNZ
00463575 //向上構成迴圈
016F:0046359B 8BC2 MOV
EAX,EDX //這裡? EDX,得到的十六進位制值就是最終正確的註冊碼!!!
016F:0046359D 83C448 ADD
ESP,BYTE +48
016F:004635A0 5F POP
EDI
016F:004635A1 5E POP
ESI
016F:004635A2 5B POP
EBX
016F:004635A3 C3 RET
演算法小結:
⑴將使用者名稱和字串" PRO"和33H個十六進位制數E連起來,設為name_temp.
⑵9(後面字元的長度)和固定字串$8181404F連起來,再放到name_temp的前面,結果設為name_temp1.
⑶9(後面字元的長度)和固定字串$81B41717連起來,再放到name_temp的前面,結果設為name_temp2.
⑷將name_temp1和name_temp2連起來,得到對使用者名稱處理的最終結果,設為Name_result.
⑸將Name_result依次取出,計算得到一個兩位的數,設為ebx~:P
⑹根據ebx的值在密碼錶(在485CF0處,長度為1k)中查表得一值,再將這個值異或ebx,結果放入sn_temp
⑺再跳回⑸,迴圈47H次後,sn_temp的十六進位制值就是最終正確的註冊碼!
That's all~~Thank you for your attention!;-)
相關文章
- Teleport
pro 演算法簡單分析2004-07-15演算法
- Disk
Chief 1.2 簡單註冊演算法分析2015-11-15演算法
- Source Insight 3.5 演算法簡單分析2015-11-15演算法
- 簡單演算法---A Speeder
V2.5破解的簡要分析!2015-11-15演算法
- 簡單演算法2024-08-09演算法
- powerarchiver 8.00.58 之不完全破解+簡單演算法分析2015-11-15Hive演算法
- Instyler Ex-it!
漢化版 1.64 簡單演算法分析2015-11-15演算法
- ExplosionField簡單分析2017-03-05
- 簡單排序演算法2020-11-27排序演算法
- 簡單演算法:迷你網路電視演算法分析 (8千字)2015-11-15演算法
- mr原理簡單分析2020-08-23
- SSRF漏洞簡單分析2020-07-16
- 簡單陰影分析2020-12-27
- Dubbo原理簡單分析2017-04-13
- POPMAN時常管家2003版--簡單演算法分析2015-11-15演算法
- LRU演算法簡單例子2013-11-26演算法單例
- js熱更新簡單分析2019-04-06JS
- MediaScanner原始碼簡單分析2019-03-04原始碼
- 骷髏病毒簡單分析2018-04-10
- 簡單的UrlDns鏈分析2024-04-16DNS
- HDLC報文簡單分析2024-07-05
- butterknife原始碼簡單分析&原理簡述2017-12-23原始碼
- 簡單理解Paxos演算法(譯)2019-03-04演算法
- 15道簡單演算法題2014-06-08演算法
- 黑馬多媒體電子教室精簡版簡單演算法分析 (8千字)2015-11-15演算法
- 單詞背背佳1.0演算法分析2015-11-15演算法
- 青少兒發育分析和身高預測註冊演算法(簡單)2015-11-15演算法
- redux簡單實現與分析2018-04-12Redux
- 簡單分析shared pool(一)2014-11-26
- 簡單分析shared pool(二)2014-11-13
- 簡單分析shared pool(三)2015-07-11
- 對CAS演算法的簡單理解2018-03-18演算法
- 十道簡單演算法題2018-03-30演算法
- 簡單的幾個排序演算法2018-04-10排序演算法
- RSA加密演算法的簡單案例2016-08-16加密演算法
- 演算法學習之簡單排序2016-04-23演算法排序
- 如何簡單解釋 MapReduce 演算法2014-11-06演算法
- 簡單的java遞迴演算法2011-02-15Java遞迴演算法