網路電視大師 V4.0.0 Build 2003.9.25註冊演算法簡析
標 題:網路電視大師 V4.0.0 Build 2003.9.25註冊演算法簡析
發信人:txm123
時 間: 2003年9月26日 04:34
詳細資訊:
網路電視大師V4.0.0 Build 2003.9.25註冊演算法簡析
軟體簡介:這是一個在網路上看電視的軟體。
破解作者:
yzez[DFCG]
破解工具:
w32dasm、ODBG109B
破解目的:
初學破解,只為交流技術,請不要依據本文章寫序號產生器,還是多多保護一下本就艱難的國產軟體吧!
破解過程:
1、軟體註冊失敗,會有提示資訊,用w32dasm反彙編找到關鍵斷點,用ODBG109B載入程式,按F9出現註冊資訊框後,
輸入註冊資訊,使用者名稱:YZEZ,試驗碼:1234567890098765432112,點確定,程式被斷下來,看下面:
00485958 . PUSH EBP
00485959 . 8BEC MOV EBP, ESP
0048595B . B9 05000000 MOV ECX, 5
00485960 > 6A 00 PUSH 0
00485962 . 6A 00 PUSH 0
00485964 . 49 DEC ECX
00485965 .^ 75 F9 JNZ SHORT main.00485960
00485967 . 53 PUSH EBX
00485968 . 8BD8 MOV EBX, EAX
0048596A . 33D2 XOR EDX, EDX
0048596C . 55 PUSH EBP
0048596D . 68 145B4800 PUSH main.00485B14
00485972 . 64:FF32 PUSH DWORD PTR FS:[EDX]
00485975 . 64:8922 MOV DWORD PTR FS:[EDX], ESP
00485978 . 84C0 TEST AL, AL
0048597A . 0F84 5F010000 JE main.00485ADF
00485980 . 8D45 F4 LEA EAX, DWORD PTR SS:[EBP-C]
00485983 . CALL main.00404308***************我們在此CALL設斷!輸入註冊資訊後往下走!
00485988 . LEA EDX, DWORD PTR SS:[EBP-1C]
0048598B . MOV EAX, DWORD PTR DS:[EBX+2FC]
00485991 . CALL main.0043F94C
00485996 . MOV EAX, DWORD PTR SS:[EBP-1C]***把機器碼:6875849699120117131144移入EAX中
00485999 . LEA EDX, DWORD PTR SS:[EBP-18]
0048599C . CALL main.00485878****************演算法CALL,按F7跟進!程式碼附後!
004859A1 . MOV EAX, DWORD PTR SS:[EBP-18]***轉換後的機器碼:9:8=?:>BDC:B??>KDEBIKJ入EAX
004859A4 . PUSH EAX
004859A5 . LEA EDX, DWORD PTR SS:[EBP-20]
004859A8 . MOV EAX, DWORD PTR DS:[EBX+2F4]
004859AE . CALL main.0043F94C
004859B3 . MOV EDX, DWORD PTR SS:[EBP-20]***使用者名稱:YZEZ移入EDX
004859B6 . LEA EAX, DWORD PTR SS:[EBP-4]
004859B9 . POP ECX
004859BA . CALL main.0040460C
004859BF . LEA EDX, DWORD PTR SS:[EBP-24]
004859C2 . MOV EAX, DWORD PTR DS:[EBX+2F4]
004859C8 . CALL main.0043F94C
004859CD . MOV EDX, DWORD PTR SS:[EBP-24]
004859D0 . MOV EAX, DWORD PTR DS:[EBX+318]
004859D6 . CALL main.0043F97C*****************此CALL把使用者名稱和變換後的機器碼串起來就是這種
*****************************************************形式:YZEZ9:8=?:>BDC:B??>KDEBIKJ
004859DB . MOV EAX, DWORD PTR DS:[EBX+31C]
004859E1 . MOV EDX, DWORD PTR SS:[EBP-4]
004859E4 . CALL main.0043F97C
004859E9 . CMP DWORD PTR SS:[EBP-4], 0
004859ED . JE main.00485ADF
004859F3 . LEA EDX, DWORD PTR SS:[EBP-8]
004859F6 . MOV EAX, DWORD PTR DS:[EBX+304]
004859FC . CALL main.0043F94C
00485A01 . LEA EDX, DWORD PTR SS:[EBP-C]
00485A04 . MOV EAX, DWORD PTR SS:[EBP-4]
00485A07 . CALL main.00485878******************第二次計算,呼叫上面的同一個子程式,程式碼也是
*************一樣,這次是對變形機器碼+使用者名稱進行計算,即:YZEZ9:8=?:>BDC:B??>KDEBIKJ,計算也是一樣!
00485A0C . MOV EDX, DWORD PTR SS:[EBP-8]
00485A0F . MOV EAX, DWORD PTR SS:[EBP-C]
00485A12 . CALL main.004085C0******************在此CALL把計算後的值與輸入的試驗碼相比較
00485A17 . TEST EAX, EAX***********************如果比較都符合,則EAX的值為0,否則不為0
00485A19 . JE SHORT main.00485A44************不為0,就不跳,不跳就往下!為0則跳走!
00485A1B . MOV EAX, main.00485B28
00485A20 . CALL main.004392AC******************不跳,在這裡就失敗了,交錢吧!
00485A25 . MOV EAX, DWORD PTR DS:[EBX+2F4]
00485A2B . XOR EDX, EDX
00485A2D . CALL main.0043F97C
00485A32 . MOV EAX, DWORD PTR DS:[EBX+304]
00485A38 . XOR EDX, EDX
00485A3A . CALL main.0043F97C
00485A3F . JMP main.00485ADF
00485A44 > XOR EAX, EAX***********************相等就跳到這裡!下面就寫入註冊資訊!
00485A46 . PUSH EBP
00485A47 . PUSH main.00485AD8
00485A4C . PUSH DWORD PTR FS:[EAX]
00485A4F . MOV DWORD PTR FS:[EAX], ESP
00485A52 . MOV DL, 1
00485A54 . MOV EAX, DWORD PTR DS:[469F4C]
00485A59 . CALL main.0046A04C
00485A5E . MOV DWORD PTR SS:[EBP-10], EAX
00485A61 . MOV EDX, 80000002
00485A66 . MOV EAX, DWORD PTR SS:[EBP-10]
00485A69 . CALL main.0046A0EC
00485A6E . LEA EAX, DWORD PTR SS:[EBP-14]
00485A71 . MOV EDX, main.00485B68
00485A76 . CALL main.004043A0
00485A7B . MOV CL, 1
00485A7D . MOV EDX, DWORD PTR SS:[EBP-14]
00485A80 . MOV EAX, DWORD PTR SS:[EBP-10]
00485A83 . CALL main.0046A150
00485A88 . TEST AL, AL
00485A8A . JE SHORT main.00485ABA
00485A8C . MOV ECX, DWORD PTR SS:[EBP-8]
00485A8F . MOV EDX, main.00485B88********************ASCII "Passwd"這裡寫入註冊碼!
00485A94 . MOV EAX, DWORD PTR SS:[EBP-10]
00485A97 . CALL main.0046A2EC
00485A9C . LEA EDX, DWORD PTR SS:[EBP-28]
00485A9F . MOV EAX, DWORD PTR DS:[EBX+318]
00485AA5 . CALL main.0043F94C
00485AAA . MOV ECX, DWORD PTR SS:[EBP-28]
00485AAD . MOV EDX, main.00485B98********************"UsrName"這裡寫入使用者名稱!已經成功了!
00485AB2 . MOV EAX, DWORD PTR SS:[EBP-10]
00485AB5 . CALL main.0046A2EC
00485ABA > MOV EAX, DWORD PTR SS:[EBP-10]
00485ABD . CALL main.0046A0BC
00485AC2 . XOR EAX, EAX
00485AC4 . POP EDX
00485AC5 . POP ECX
00485AC6 . POP ECX
00485AC7 . MOV DWORD PTR FS:[EAX], EDX
00485ACA . PUSH main.00485ADF
00485ACF > MOV EAX, DWORD PTR SS:[EBP-10]
00485AD2 . CALL main.0040359C
00485AD7 . RETN
=======================================================================================================================
***********************************演算法CALL的程式碼!省略部分程式碼**********************************************************
00485878 /$ PUSH EBP*********************************追進演算法CALL後,我們停在這裡!
***********************************省略部分程式碼!
004858A8 |. CALL main.00404308
004858AD |. MOV EAX, [LOCAL.1]**************把機器碼移入EAX中
004858B0 |. CALL main.004045C0
004858B5 |. MOV ESI, EAX********************機器碼的位數移入ESI,機器碼是22(十六進位制值是16),ESI=16
004858B7 |. TEST ESI, ESI********************測試位數!
004858B9 |. JLE SHORT main.0048590D*********小於就跳走!這裡不會跳!直接往下!
004858BB |. MOV EBX, 1**********************把1放進EBX
004858C0 |> LEA EAX, DWORD PTR DS:[EBX+1E]**把值:EBX+1E=1+1E=1F入EAX這是第一次,第二次是2+1E=20,以後類
**************推,直至取完22位機器碼!
004858C3 |. PUSH EAX*************************EAX入棧!1F入棧
004858C4 |. MOV EAX, EBX********************EBX的值入EAX,即EAX的值變成1
004858C6 |. POP EDX
004858C7 |. MOV ECX, EDX********************EDX的值1F移入ECX中
004858C9 |. CDQ*********************************EDX清0
004858CA |. IDIV ECX*************************EAX=EAX/ECX=1/1F=0,餘數1放在EDX中
004858CC |. MOV EDI, EDX********************EDX入EDI,1入EDI
004858CE |. MOV EAX, EBX********************1入EAX
004858D0 |. XOR EAX, EBX********************EAX清0
004858D2 |. XOR EAX, EBX********************EAX的值為1
004858D4 |. XOR EDI, EAX********************EDI清0
004858D6 |. LEA EAX, DWORD PTR DS:[EBX+14]**EBX+14=1+14=15入EAX,同上,第二次是2+14=16
004858D9 |. PUSH EAX
004858DA |. MOV EAX, EBX********************EAX的值為1
004858DC |. POP EDX
004858DD |. MOV ECX, EDX********************15入ECX
004858DF |. CDQ*********************************EDX清0
004858E0 |. IDIV ECX*************************EAX=EAX/ECX=1/15=0,餘數1放在EDX中
004858E2 |. XOR EDX, EBX********************EDX清0
004858E4 |. ADD EDI, EDX********************EDI=EDI+EDX=0+0=0
004858E6 |. ADD EDI, EBX********************EDI=EDI+EBX=0+1=1
004858E8 |. XOR EDI, 3**********************1與常數3相異或,值為2
004858EB |. INC EDI*************************EDI的值再加1,為3
004858EC |. LEA EAX, [LOCAL.4]
004858EF |. MOV EDX, [LOCAL.1]**************機器碼入EDX
004858F2 |. MOVZX EDX, BYTE PTR DS:[EDX+EBX-1]***取機器碼的第一位:6(ASCII碼值為36)
004858F7 |. ADD EDX, EDI********************EDX=EDX+EDI=3+36=39(十進位制值為9)
004858F9 |. CALL main.004044E8
004858FE |. MOV EDX, [LOCAL.4]
00485901 |. LEA EAX, [LOCAL.3]
00485904 |. CALL main.004045C8
00485909 |. INC EBX*************************EBX+1=2
0048590A |. DEC ESI*************************ESI-1=16-1=15
0048590B |.^ JNZ SHORT main.004858C0*********機器碼取完了嗎?沒取完繼續迴圈,這一個迴圈是處理機器
********碼,把機器碼進行轉換!轉換是這樣:每次取出一位機器碼設為M,其對應的在機器碼中所處的位數設為X,
********X XOR 3=Y,設轉換後的值為N,N=Y+M(加的值是其ASCII碼值),得到結果N取對應的字串,就是轉換後的值
********如取第一位:6,6對應的位數是:1,所以1^3=2,2+1=3,3+36=39,轉換後的第一位值就是:9;第二位:8,就
********是:2^3=1,1+1=2,2+38=3A,3A對應的字串是:“:”這就是轉換後的第二位值,以下類推。我的機器碼:
********6875849699120117131144轉換後的值是:9:8=?:>BDC:B??>KDEBIKJ
0048590D |> MOV EAX, [LOCAL.2]
00485910 |. MOV EDX, [LOCAL.3]
00485913 |. CALL main.0040435C
00485918 |. XOR EAX, EAX
0048591A |. POP EDX
0048591B |. POP ECX
0048591C |. POP ECX
0048591D |. MOV DWORD PTR FS:[EAX], EDX
00485920 |. PUSH main.00485942
00485925 |> LEA EAX, [LOCAL.4]
00485928 |. MOV EDX, 2
0048592D |. CALL main.0040432C
00485932 |. LEA EAX, [LOCAL.1]
00485935 |. CALL main.00404308
0048593A . RETN
2、演算法小結:
計算註冊碼用到機器碼和你輸入的使用者名稱,要經過兩次計算,第一次計算把機器碼進行轉換,轉換是這樣:每次取
出一位機器碼設為M,其對應的在機器碼中所處的位數設為X,X XOR 3=Y,設轉換後的值為N,N=Y+M(加的值是其ASCII
碼值),得到結果N取對應的字串,就是轉換後的值如取第一位:6,6對應的位數是:1,所以1^3=2,2+1=3,3+36=39,
轉換後的第一位值就是:9;第二位:8,是:2^3=1,1+1=2,2+38=3A,3A對應的字串是:“:”這就是轉換後的第二
位值,以下類推。我的機器碼:6875849699120117131144轉換後的值是:9:8=?:>BDC:B??>KDEBIKJ
第二次計算把使用者名稱和變形後的機器碼連線起來,組成一個新的值,再把這個值按上述公式計算出你的註冊碼,計算
一樣,不再多說明。
一個成功的註冊碼:
使用者名稱:YZEZ
機器碼:6875849699120117131144
註冊碼:\Fb@@=IJDGRSQGVRQOc[[Wefd
計算註冊碼的公式簡述如下:
設一位註冊碼為M,其對應在碼中的位數為X,計算的中間值為Y,計算後的註冊碼對應的ASCII碼值為N
公式如下:X^3=Y,N=Y+M(取對應的字串)
相關文章
- 迷你網路電視5.1註冊演算法2003-07-04演算法
- 【原創】星空視訊俱樂部 V1.75註冊演算法簡析2015-11-15演算法
- RegEditor登錄檔修改器 1.2註冊演算法簡析2015-11-15演算法
- 網路精確時鐘 2.25註冊演算法分析2003-07-30演算法
- 簡單演算法:迷你網路電視演算法分析 (8千字)2015-11-15演算法
- 檔案管理軟體管理大師演算法簡析!(簡單浮點)2015-11-15演算法
- 東晨庫管網路版 6.5註冊演算法分析2003-08-14演算法
- 網路電視大師 2004VER2.0.0.1版演算法分析(簡單)DD本年度最後一篇2015-11-15演算法
- 簡單演算法――Windows設定大師
2003 Build 04152015-11-15演算法WindowsUI
- Midi簡譜輸入系統(version 0.8.0 Build 4)註冊破解2015-11-15UI
- 網路電視專家5.0演算法分析2004-05-29演算法
- Disk
Chief 1.2 簡單註冊演算法分析2015-11-15演算法
- 商城網站新增了最新阿里大魚簡訊註冊登入2019-12-03網站阿里
- 神算劉半仙 2003 Build 09.01 演算法簡析2015-11-15UI演算法
- Spring註解簡析2022-03-09Spring
- Laravel——簡訊註冊2018-05-28Laravel
- LanSee 註冊演算法2015-11-15演算法
- 全國電話通 Ver1.09註冊演算法2015-11-15演算法
- 蘋果Mac壓縮解壓工具:Archiver 4 for Mac v4.0.0註冊啟用版2023-11-16蘋果MacHive
- 簡單演算法――Windows設定大師 2003 V2.0 Build
04202015-11-15演算法WindowsUI
- 簡單演算法――網路電話 Talking anywhere 5.02003-03-14演算法
- 原始碼簡析XXL-JOB的註冊和執行過程2021-05-10原始碼
- 你會為曲面電視買單嗎?簡析曲面電視顯示技術2015-04-17
- 財智老闆通3.04註冊版---註冊演算法分析2003-03-16演算法
- Instant Source 註冊演算法分析+註冊器原始碼2015-11-15演算法原始碼
- 網路工程師綜合網路配置練習手冊2014-04-17工程師
- supercleaner註冊演算法分析2015-11-15演算法
- 簡析限流演算法2019-05-20演算法
- 美萍網管大師及安全衛士快速查註冊碼。 (1千字)2001-07-18
- Math ActivityMaker Skills v2.20註冊演算法(簡單)2015-11-15演算法
- 簡析網路競技遊戲匹配機制2021-11-29遊戲
- 電路大師課系列-模擬積體電路設計第五講:基本π網路(下)2017-06-23
- 從網路架構方面簡析迴圈神經網路RNN2019-05-17架構神經網路RNN
- 網際網路電視勝局已定 傳統電視翻身不易2016-11-04
- 中文內碼轉換巨匠1.2【VB簡單】註冊演算法2004-09-22演算法
- Adult PDF Password Recovery v2.1註冊演算法(簡單)2015-11-15演算法
- SpeedFlash註冊演算法分析(VB)2015-11-15演算法
- 上網求職走入電視網路 (轉)2007-12-07求職