超級視網V1.51破解筆記[爆破,演算法]

看雪資料發表於2003-08-27

【前    言】:以前破了1.1版本的,最近ljwbh提示這個軟體又有新花樣,要我繼續學習,所以我升級了這個軟體

,後發現這個版本變成未註冊了!所以...

【軟體名稱】:超級網視1.51

【下載頁面】:中國共享軟體註冊中心

【軟體大小】:1376KB

【應用平臺】:WIN9X/WINNT/WIN2K/WINXP

【軟體簡介】:
1、“超級網視”是一款綠色軟體,執行過程中不會在系統目錄及登錄檔增添任何內容。
2、本軟體主要功能是為了充分利用寬頻網路的資源,透過網路收看電視節目,收聽廣播節目,以及網路中的

其他線上影視節目。並可以播放幾乎所有的本的及網路媒體檔案(如*.dat, *.wav, *.avi, *.mov, *.mmm,

*.mid, *.rmi, *.mpg, *.rm, *.ram, *.ra, *.swf, *.mp3, *.asf等格式)。
3、可自行定義多達10個快捷頻道,單擊主介面按鈕即可播放相應的節目。
4、軟體有兩種語言版本,簡體中文(GB2312)及繁體中文(BIG5),需分別下載。
5、擁有線上檢查新版本,註冊後可實現線上升級資料檔案及程式檔案的功能。
6、介面華麗美觀,仿Windows XP介面,並可透過設定即時改變多種介面風格。

【軟體限制】:可以免費使用,但啟動的時候和每半小時就會彈出一個提醒註冊的視窗!

【文章作者】:輝仔Yock[DFCG][YCG][OCN][CTR]

【作者宣告】:本人發表這篇文章只是為了學習和研究!!!請不用於商業用途或是將本文方法制作的序號產生器或是

補丁檔案任意傳播,讀者看了文章後所做的事情與我無關,我也不會負責,請讀者看了文章後三思而後行!最後希

望大家在經濟基礎好的時候,支援共享軟體!(在這裡最此軟體的作者以萬二分的歉意鞠躬...)

【破解工具】:Ollydbg1.09-d  PEiD0.9  ImportREC(中文)  Hiew v6.81

―――――――――――――――――――――――――――――――――
【過    程】:
用PEiD偵察出主程式SuperTVPlayer.exe是ASPack 2.12 -> Alexey Solodovnikov加的殼!

用PEid查詢OEP(嘻嘻,我就是喜歡PEid的這個強大功能,但現在的0.9版本又個bug就是有時候沒有查OEP這個按鈕

),得知OEP=5522E0

執行Ollydbg 按F3載入主程式SuperTVPlayer.exe 彈出一個框(按確定) 再彈出一個框(按NO) 會自動中斷!

然後打命令g 5522E0  來到了程式的入口5522E0(嘻嘻..)

用脫殼外掛把它Dump下來,記得要另外起個新的名字(TKSuperTVPlayer.exe)再按儲存哦!(N久之後久OK了...)

那麼現在執行一下脫殼後的程式TKSuperTVPlayer.exe出錯(理所當然,沒有修復輸入表!!!)

那麼現在回到Ollydbg,按F9(即執行軟體,這個是我個人習慣)執行軟體!

然後執行ImportREC,在最高(選擇一個使用中的程式)那裡選.../SuperTVPlayer.exe這行!

接著在ImportREC的左下角(IAT 所需資訊)那裡把OEP的值填好!(很重要,我這裡得到的OEP是5522E0,那麼在這裡

就要輸入5522E0-40000=1522E0就OK了!)然後按旁邊那個(IAT自動搜尋),彈出一個框後按確定!

然後就按ImportREC左下角的(獲得輸入資訊),接著中間的大框會出來很多東西,接著按ImportREC右邊從上往下

數第二個按鈕(顯示無效的),這個時候看看中間大框沒有ON或是否的就表示行了!(有NO或是否就表示要搜尋函式

了!還好我這裡沒有!如果有NO或否的話就在中間的大框對著NO的地方單擊右鍵,用追蹤成次1\2\3和用ImportREC

外掛來查詢函式!再不行的話就要手動了!)直到所有的函式都變成YES或是的時候就可以按ImportREC下面的那個

(修理抓取檔案)來修復TKSuperTVPlayer.exe了!修理成功後再同目錄下會有一個TKSuperTVPlayer.exe_.exe文

件!


[[呵呵,這裡脫殼和昨天破的"心夢網頁特效管理專家8.0 XP"差不多!]]
---------------------------------------------------------
因為軟體是輸入註冊碼後透過網路驗證的,所以一開始我打算爆破的!經過跟蹤後有驚人的發現(請一直看下去就

知道了)!

由於它的註冊資訊和以前版本一樣是儲存在同目錄的SuperTVPlayer.ini檔案的
[System]
RegisterName=Yock196                 \\這裡是名字!!!
RegisterCode=9876543210ABCDEFGHI     \\這裡最少要19位不同的註冊碼,不然分析的時候很頭暈!!!

由於網路驗證,我這裡是手動把註冊資訊加進去的!(不手動加的話,破解難度就大了!)

那麼我們現在就用OLLYDBG來試調了!載入後會自動中斷在程式的入口處!

根據OLLYDBG強大的參考字串查詢"RegisterCode"發現有N處,不管那麼多,看見"RegisterCode"就按F2(F2=下斷!

別告訴我你不知道哦,這樣會很難溝通!)

按F9執行程式!斷下後按F8和F7慢慢跟就會來到下面關鍵處!

0054FF47  |.  E8 6476EDFF   CALL    004275B0
0054FF4C  |.  8B55 F8       MOV     EDX,[LOCAL.2]
0054FF4F  |.  8BC3          MOV     EAX,EBX
0054FF51  |.  E8 EAE6FFFF   CALL    0054E640
                           //註冊碼是怎麼煉成的!F7追進去見下面

0054FF56  |.  84C0          TEST    AL,AL
0054FF58  |.  75 3B         JNZ     SHORT 0054FF95
                           //一定要跳走,不然就變成未註冊了!

--------------------------------------------------
//上面0054FF51的call來到這裡!

0054E640  /$  55            PUSH    EBP
0054E641  |.  8BEC          MOV     EBP,ESP
0054E643  |.  B9 05000000   MOV     ECX,5
0054E648  |>  6A 00         /PUSH    0
0054E64A  |.  6A 00         |PUSH    0
0054E64C  |.  49            |DEC     ECX
0054E64D  |.^ 75 F9         \JNZ     SHORT 0054E648
0054E64F  |.  51            PUSH    ECX
0054E650  |.  53            PUSH    EBX
0054E651  |.  56            PUSH    ESI
0054E652  |.  8955 FC       MOV     [LOCAL.1],EDX
0054E655  |.  8BD8          MOV     EBX,EAX
0054E657  |.  8B45 FC       MOV     EAX,[LOCAL.1]
0054E65A  |.  E8 B966EBFF   CALL    00404D18
0054E65F  |.  33C0          XOR     EAX,EAX
0054E661  |.  55            PUSH    EBP
0054E662  |.  68 FCE75400   PUSH    0054E7FC
0054E667  |.  64:FF30       PUSH    DWORD PTR FS:[EAX]
0054E66A  |.  64:8920       MOV     FS:[EAX],ESP
0054E66D  |.  8D55 EC       LEA     EDX,[LOCAL.5]
0054E670  |.  8BC3          MOV     EAX,EBX
0054E672  |.  E8 B9FEFFFF   CALL    0054E530
0054E677  |.  8B45 EC       MOV     EAX,[LOCAL.5]
0054E67A  |.  E8 B164EBFF   CALL    00404B30
0054E67F  |.  50            PUSH    EAX
0054E680  |.  8D45 F8       LEA     EAX,[LOCAL.2]
0054E683  |.  B9 01000000   MOV     ECX,1
0054E688  |.  8B15 1CE65400 MOV     EDX,[54E61C]                     ;  TKSUPERT.0054E620
0054E68E  |.  E8 C579EBFF   CALL    00406058
0054E693  |.  83C4 04       ADD     ESP,4
0054E696  |.  8B45 EC       MOV     EAX,[LOCAL.5]
                           //這裡是機器碼
0054E699  |.  E8 9264EBFF   CALL    00404B30
0054E69E  |.  8BF0          MOV     ESI,EAX
0054E6A0  |.  4E            DEC     ESI
0054E6A1  |.  85F6          TEST    ESI,ESI
0054E6A3  |.  7C 14         JL      SHORT 0054E6B9
0054E6A5  |.  46            INC     ESI
0054E6A6  |.  33DB          XOR     EBX,EBX
                           //這裡到下面0054E6B7是一個迴圈,是把連在一起的機器碼變成下面這樣分開:
===========================================================================
012DA7BC  59 00 00 00 4D 00 00 00 44 00 00 00 59 00 00 00  Y...M...D...Y...
012DA7CC  4D 00 00 00 48 00 00 00 31 00 00 00 33 00 00 00  M...H...1...3...
012DA7DC  38 00 00 00 33 00 00 00 38                       8...3...8
===========================================================================

0054E6A8  |>  8B45 EC       /MOV     EAX,[LOCAL.5]
0054E6AB  |.  0FB60418      |MOVZX   EAX,BYTE PTR [EAX+EBX]
0054E6AF  |.  8B55 F8       |MOV     EDX,[LOCAL.2]
0054E6B2  |.  89049A        |MOV     [EDX+EBX*4],EAX
0054E6B5  |.  43            |INC     EBX
0054E6B6  |.  4E            |DEC     ESI
0054E6B7  |.^ 75 EF         \JNZ     SHORT 0054E6A8
                           //上面0054E6A8到這裡是一個迴圈!


0054E6B9  |>  C745 F0 00000>MOV     [LOCAL.4],0
0054E6C0  |.  C745 F4 00000>MOV     [LOCAL.3],0
0054E6C7  |.  8B45 EC       MOV     EAX,[LOCAL.5]
                           //這裡是機器碼

0054E6CA  |.  E8 6164EBFF   CALL    00404B30
                           //取得機器碼位數

0054E6CF  |.  8BF0          MOV     ESI,EAX
0054E6D1  |.  4E            DEC     ESI
0054E6D2  |.  85F6          TEST    ESI,ESI
0054E6D4  |.  7C 34         JL      SHORT 0054E70A
0054E6D6  |.  46            INC     ESI
0054E6D7  |.  33DB          XOR     EBX,EBX
                           //這裡到下面0054E708是一個迴圈,是把機器碼的ascii碼乘起來!

0054E6D9  |>  85DB          /TEST    EBX,EBX
0054E6DB  |.  75 0F         |JNZ     SHORT 0054E6EC
0054E6DD  |.  8B45 F8       |MOV     EAX,[LOCAL.2]
0054E6E0  |.  8B0498        |MOV     EAX,[EAX+EBX*4]
0054E6E3  |.  99            |CDQ
0054E6E4  |.  8945 F0       |MOV     [LOCAL.4],EAX
0054E6E7  |.  8955 F4       |MOV     [LOCAL.3],EDX
0054E6EA  |.  EB 1A         |JMP     SHORT 0054E706
0054E6EC  |>  8B45 F8       |MOV     EAX,[LOCAL.2]
0054E6EF  |.  8B0498        |MOV     EAX,[EAX+EBX*4]
0054E6F2  |.  99            |CDQ
0054E6F3  |.  52            |PUSH    EDX
0054E6F4  |.  50            |PUSH    EAX
0054E6F5  |.  8B45 F0       |MOV     EAX,[LOCAL.4]
0054E6F8  |.  8B55 F4       |MOV     EDX,[LOCAL.3]
0054E6FB  |.  E8 8073EBFF   |CALL    00405A80
0054E700  |.  8945 F0       |MOV     [LOCAL.4],EAX
0054E703  |.  8955 F4       |MOV     [LOCAL.3],EDX
0054E706  |>  43            |INC     EBX
0054E707  |.  4E            |DEC     ESI
0054E708  |.^ 75 CF         \JNZ     SHORT 0054E6D9
                           //上面0054E6D9到這裡是一個迴圈,是把機器碼的ascii碼乘起來!

0054E70A  |>  BB 01000000   MOV     EBX,1
                           //EBX=1 !!!

0054E70F  |.  8BC3          MOV     EAX,EBX
                           /ebx=eax=1

0054E711  |.  99            CDQ
0054E712  |.  0345 F0       ADD     EAX,[LOCAL.4]
0054E715  |.  1355 F4       ADC     EDX,[LOCAL.3]
0054E718  |.  52            PUSH    EDX
0054E719  |.  50            PUSH    EAX
0054E71A  |.  8D43 0A       LEA     EAX,[EBX+A]
0054E71D  |.  99            CDQ
0054E71E  |.  330424        XOR     EAX,[ESP]
0054E721  |.  335424 04     XOR     EDX,[ESP+4]
0054E725  |.  83C4 08       ADD     ESP,8
0054E728  |.  52            PUSH    EDX
0054E729  |.  50            PUSH    EAX
0054E72A  |.  8D55 EC       LEA     EDX,[LOCAL.5]
0054E72D  |.  B8 08000000   MOV     EAX,8
0054E732  |.  E8 8DADEBFF   CALL    004094C4
0054E737  |.  8D45 E4       LEA     EAX,[LOCAL.7]
0054E73A  |.  50            PUSH    EAX
0054E73B  |.  B9 02000000   MOV     ECX,2
0054E740  |.  BA 03000000   MOV     EDX,3
0054E745  |.  8B45 FC       MOV     EAX,[LOCAL.1]
                           //我輸入的假註冊碼

0054E748  |.  E8 3B66EBFF   CALL    00404D88
                           //這裡是取得假註冊碼第3、4位數的值!

0054E74D  |.  FF75 E4       PUSH    [LOCAL.7]
                           假註冊碼第3、4位數的值壓棧!

0054E750  |.  8D45 E0       LEA     EAX,[LOCAL.8]
0054E753  |.  50            PUSH    EAX
0054E754  |.  B9 02000000   MOV     ECX,2
0054E759  |.  BA 08000000   MOV     EDX,8
0054E75E  |.  8B45 FC       MOV     EAX,[LOCAL.1]
                           //我輸入的假註冊碼

0054E761  |.  E8 2266EBFF   CALL    00404D88
                           //這裡是取得假註冊碼第8、9位數的值!

0054E766  |.  FF75 E0       PUSH    [LOCAL.8]
                           //假註冊碼第8、9位數的值壓棧!

0054E769  |.  8D45 DC       LEA     EAX,[LOCAL.9]
0054E76C  |.  50            PUSH    EAX
0054E76D  |.  B9 02000000   MOV     ECX,2
0054E772  |.  BA 0D000000   MOV     EDX,0D
0054E777  |.  8B45 FC       MOV     EAX,[LOCAL.1]
                           //我輸入的假註冊碼

0054E77A  |.  E8 0966EBFF   CALL    00404D88
                           //這裡是取得假註冊碼第13、14位數的值!

0054E77F  |.  FF75 DC       PUSH    [LOCAL.9]
                           //假註冊碼第13、14位數的值壓棧!

0054E782  |.  8D45 D8       LEA     EAX,[LOCAL.10]
0054E785  |.  50            PUSH    EAX
0054E786  |.  B9 02000000   MOV     ECX,2
0054E78B  |.  BA 12000000   MOV     EDX,12
0054E790  |.  8B45 FC       MOV     EAX,[LOCAL.1]
                           //我輸入的假註冊碼

0054E793  |.  E8 F065EBFF   CALL    00404D88
                           //這裡是取得假註冊碼第18、19位數的值

0054E798  |.  FF75 D8       PUSH    [LOCAL.10]
                           //假註冊碼第18、19位數的值壓棧!

0054E79B  |.  8D45 E8       LEA     EAX,[LOCAL.6]
0054E79E  |.  BA 04000000   MOV     EDX,4
0054E7A3  |.  E8 4864EBFF   CALL    00404BF0
                           //這裡是把假註冊碼第3、4、8、9、13、14、18、19位連在一起!

0054E7A8  |.  8D4D D4       LEA     ECX,[LOCAL.11]
0054E7AB  |.  BA 08000000   MOV     EDX,8
0054E7B0  |.  8B45 EC       MOV     EAX,[LOCAL.5]
0054E7B3  |.  E8 E858EFFF   CALL    004440A0
                           //這裡是把機器碼計算後的值取其後八位
0054E7B8  |.  8B45 D4       MOV     EAX,[LOCAL.11]
                           //機器碼計算後的值的後八位!
0054E7BB  |.  8B55 E8       MOV     EDX,[LOCAL.6]
                           //假註冊碼第3、4、8、9、13、14、18、19連在一起!
0054E7BE  |.  E8 B164EBFF   CALL    00404C74
                           //比較
0054E7C3  |.  75 04         JNZ     SHORT 0054E7C9
                           //不跳的話就是註冊版本了哦!(爆破點)
0054E7C5  |.  B3 01         MOV     BL,1
                           //標誌位賦值
0054E7C7  |.  EB 02         JMP     SHORT 0054E7CB

這裡就劃上句號了!可惜還是未註冊版本!我暈死...
--------------------------------------------------------


繼續跟,來到這裡!(原來就是這裡在搞鬼了!)

0054AB42   .  68 9CB95400   PUSH    0054B99C                         ;  ASCII "    -    -    "
0054AB47   .  8D85 6CFFFFFF LEA     EAX,[EBP-94]
0054AB4D   .  50            PUSH    EAX
0054AB4E   .  B9 B4B95400   MOV     ECX,0054B9B4                     ;  ASCII "RegisterCode"
0054AB53   .  BA 28B95400   MOV     EDX,0054B928                     ;  ASCII "System"
0054AB58   .  8B45 F8       MOV     EAX,[EBP-8]
0054AB5B   .  8B18          MOV     EBX,[EAX]
0054AB5D   .  FF13          CALL    [EBX]                            ;  TKSUPERT.004714AC
0054AB5F   .  8B95 6CFFFFFF MOV     EDX,[EBP-94]
0054AB65   .  8B45 FC       MOV     EAX,[EBP-4]
0054AB68   .  E8 D33A0000   CALL    0054E640
                           //這裡是上面"註冊碼怎麼練成的"地方!繼續煉一次!

0054AB6D   .  84C0          TEST    AL,AL
0054AB6F   .  0F85 D0000000 JNZ     0054AC45
                           //一定要跳走哦!不然就...
                           //這裡省略一部分和破解用處不大的程式碼!
                           //...
                           //...
                           //...

0054AC45   >  68 F8B95400   PUSH    0054B9F8                         ;  ASCII "100"
                           //看見100了嗎??

0054AC4A   .  8D85 60FFFFFF LEA     EAX,[EBP-A0]
0054AC50   .  50            PUSH    EAX
0054AC51   .  B9 04BA5400   MOV     ECX,0054BA04                     ;  ASCII "EnableProxy"
                           //這個可是關鍵哦!

0054AC56   .  BA 28B95400   MOV     EDX,0054B928                     ;  ASCII "System"
0054AC5B   .  8B45 F8       MOV     EAX,[EBP-8]
0054AC5E   .  8B18          MOV     EBX,[EAX]
0054AC60   .  FF13          CALL    [EBX]                            ;  TKSUPERT.004714AC
                           //取同目錄下SuperTVPlayer.ini檔案裡面"System"項"EnableProxy"的值

0054AC62   .  8B85 60FFFFFF MOV     EAX,[EBP-A0]
                           //這裡就是"EnableProxy"的值!

0054AC68   .  BA F8B95400   MOV     EDX,0054B9F8                     ;  ASCII "100"
0054AC6D   .  E8 02A0EBFF   CALL    00404C74
                           //比較是否大於100,大於下面就跳,否之就掛了!

0054AC72   .  0F85 0C010000 JNZ     0054AD84
                           //一定要跳走啊!不然就死了!
                           //這裡省略一部分和破解用處不大的程式碼!
                           //...
                           //...
                           //...

0054AD84   >  68 F8B95400   PUSH    0054B9F8                         ;  ASCII "100"
                           //看見100了嗎??

0054AD89   .  8D85 54FFFFFF LEA     EAX,[EBP-AC]
0054AD8F   .  50            PUSH    EAX
0054AD90   .  B9 E4B95400   MOV     ECX,0054B9E4                     ;  ASCII "ProxyUpdata"
                           //這個可是關鍵哦!

0054AD95   .  BA 28B95400   MOV     EDX,0054B928                     ;  ASCII "System"
0054AD9A   .  8B45 F8       MOV     EAX,[EBP-8]
0054AD9D   .  8B18          MOV     EBX,[EAX]
0054AD9F   .  FF13          CALL    [EBX]                            ;  TKSUPERT.004714AC
                           //取同目錄下SuperTVPlayer.ini檔案裡面"System"項"EnableProxy"的值

0054ADA1   .  8B85 54FFFFFF MOV     EAX,[EBP-AC]
                           //這裡就是"EnableProxy"的值!

0054ADA7   .  BA F8B95400   MOV     EDX,0054B9F8                     ;  ASCII "100"
0054ADAC   .  E8 C39EEBFF   CALL    00404C74
                           //比較是否大於100,大於下面就跳,否之就掛了!

0054ADB1   .  0F85 CC000000 JNZ     0054AE83
                           //一定要跳走啊!不然就死了!

哈哈,來到這裡才真的註冊成功了!
==========================================================================
這裡是我最開始跟蹤的爆破過程:

由於最開始不知道把"ProxyUpdata"和"EnableProxy"都賦值大於100就可以註冊成功!

所以我對所有經過"RegisterCode"處都下斷,分別在啟動,更新,關於,開啟節目表的時候都斷下了!

(經過熟悉程式後才瞭解到程式透過網路驗證的時候如果是正確的註冊碼的話就會

把"ProxyUpdata"和"EnableProxy"都賦值大於100---這是我的猜測)


這裡是"C4爆破版本"要改的地方一共14處(有幾處是重複了,而且也不用改那麼多地方的,只是以防萬一)!
--------------------------------------------------//啟動經過此處關鍵!
0054FF51  |.  E8 EAE6FFFF   CALL    0054E640
0054FF56  |.  84C0          TEST    AL,AL
0054FF58  |.  75 3B         JNZ     SHORT 0054FF95//EB3B JMP
----------------------------

0054E7B8  |.  8B45 D4       MOV     EAX,[LOCAL.11]
0054E7BB  |.  8B55 E8       MOV     EDX,[LOCAL.6]
0054E7BE  |.  E8 B164EBFF   CALL    00404C74
0054E7C3  |.  75 04         JNZ     SHORT 0054E7C9//9090 NOP
0054E7C5  |.  B3 01         MOV     BL,1
0054E7C7  |.  EB 02         JMP     SHORT 0054E7CB
----------------------------
0054AB5F   .  8B95 6CFFFFFF MOV     EDX,[EBP-94]
0054AB65   .  8B45 FC       MOV     EAX,[EBP-4]
0054AB68   .  E8 D33A0000   CALL    0054E640
0054AB6D   .  84C0          TEST    AL,AL
0054AB6F   .  0F85 D0000000 JNZ     0054AC45//E9D100000090 JMP
----------------------------
0054E7B8  |.  8B45 D4       MOV     EAX,[LOCAL.11]
0054E7BB  |.  8B55 E8       MOV     EDX,[LOCAL.6]
0054E7BE  |.  E8 B164EBFF   CALL    00404C74
0054E7C3  |.  75 04         JNZ     SHORT 0054E7C9//9090 NOP
0054E7C5  |.  B3 01         MOV     BL,1
0054E7C7  |.  EB 02         JMP     SHORT 0054E7CB
----------------------------
0054AC62   .  8B85 60FFFFFF MOV     EAX,[EBP-A0]
0054AC68   .  BA F8B95400   MOV     EDX,0054B9F8
0054AC6D   .  E8 02A0EBFF   CALL    00404C74
0054AC72   .  0F85 0C010000 JNZ     0054AD84//E90D01000090 JMP
----------------------------
0054ADA1   .  8B85 54FFFFFF MOV     EAX,[EBP-AC]
0054ADA7   .  BA F8B95400   MOV     EDX,0054B9F8
0054ADAC   .  E8 C39EEBFF   CALL    00404C74
0054ADB1   .  0F85 CC000000 JNZ     0054AE83//E9CD00000090 JMP

--------------------------------------------------//更新經過此處關鍵!
0054F196   .  8B55 EC       MOV     EDX,[EBP-14]
0054F199   .  8B45 FC       MOV     EAX,[EBP-4]
0054F19C   .  E8 9FF4FFFF   CALL    0054E640
0054F1A1   .  84C0          TEST    AL,AL
0054F1A3   .  0F85 A5000000 JNZ     0054F24E//E9A600000090 JMP
----------------------------
0054F276   .  8B45 E0       MOV     EAX,[EBP-20]
0054F279   .  BA E0F45400   MOV     EDX,0054F4E0
0054F27E   .  E8 F159EBFF   CALL    00404C74
0054F283   .  0F85 AD000000 JNZ     0054F336//E9AE00000090 JMP
----------------------------
0053F3AB   .  8B55 90       MOV     EDX,[EBP-70]
0053F3AE   .  8B45 FC       MOV     EAX,[EBP-4]
0053F3B1   .  E8 4E0C0000   CALL    00540004
0053F3B6   .  84C0          TEST    AL,AL
0053F3B8   .  75 63         JNZ     SHORT 0053F41D//EB63 JMP
----------------------------
0053F445   .  8B45 8C       MOV     EAX,[EBP-74]
0053F448   .  BA 94F75300   MOV     EDX,0053F794
0053F44D   .  E8 2258ECFF   CALL    00404C74
0053F452   .  75 6B         JNZ     SHORT 0053F4BF//EB6B JMP
---------------------------------------------------//開啟節目表經過此處關鍵!
0052A1B1   .  8B95 74FFFFFF MOV     EDX,[EBP-8C]
0052A1B7   .  8B45 FC       MOV     EAX,[EBP-4]
0052A1BA   .  E8 45170000   CALL    0052B904
0052A1BF   .  84C0          TEST    AL,AL
0052A1C1   .  75 53         JNZ     SHORT 0052A216//EB53 JMP
----------------------------
0052A241   .  8B85 70FFFFFF MOV     EAX,[EBP-90]
0052A247   .  BA A0B25200   MOV     EDX,0052B2A0
0052A24C   .  E8 23AAEDFF   CALL    00404C74
0052A251   .  75 4E         JNZ     SHORT 0052A2A1//EB4E JMP
--------------------------------------------------//關於經過此處關鍵!
0053D2B4   .  8B55 98       MOV     EDX,[EBP-68]
0053D2B7   .  8B45 FC       MOV     EAX,[EBP-4]
0053D2BA   .  E8 75050000   CALL    0053D834
0053D2BF   .  84C0          TEST    AL,AL
0053D2C1   .  0F85 8B000000 JNZ     0053D352//E98C00000090 JMP
----------------------------
0053D37A   .  8B45 94       MOV     EAX,[EBP-6C]
0053D37D   .  BA C0D75300   MOV     EDX,0053D7C0                     ;  ASCII "100"
0053D382   .  E8 ED78ECFF   CALL    00404C74
0053D387   .  0F85 8B000000 JNZ     0053D418//E98C00000090 JMP


------------------------------------------------------------------
【總    結】:

這個程式註冊的使用者名稱不做計算,可以說是沒有用的!(我個人覺得使用者名稱最大的作用就是顯示再關於那裡的授權

給"XXX")

真註冊碼=機器碼的ASCII碼都乘起來的積-->再加1的和-->與B或運算的結果-->取得結果的後八位-->與輸入的

註冊碼第3、4、8、9、13、14、18、19連在一起的值比較,不同就死!

以我的機器碼為例(我的機器碼是YMDYMH13838)

(注:以下括號裡的是16進位制的乘法和加法)
(59*4D*44*59*4D*48*31*33*38*33*38+1) XOR B=FB5E45C45EA3C80A
取其後八位5EA3C80A與註冊碼第3、4、8、9、13、14、18、19連在一起的值比較,不同就死!

我的機器碼是"YMDYMH13838"

那麼註冊碼是"XX5EXXXA3XXXC8XXX0A"(X為0-F間任意)
===================================================
注意:
這個程式就算你把註冊名和正確的註冊碼都手動寫入同目錄的SuperTVPlayer.ini檔案的
[System]
RegisterName=Yock196
RegisterCode=9876543210ABCDEFGHI
裡面一樣是未註冊的!因為還有兩處(沒有就自己加進去)"ProxyUpdata"和"EnableProxy"沒有賦值!

我懷疑程式透過網路驗證的時候如果是正確的註冊碼的話就會把"ProxyUpdata"和"EnableProxy"都賦值大於100

也就是說把同目錄的SuperTVPlayer.ini檔案裡面新增下面內容就OK了!(爽吧,不同爆破也可以是完美註冊版本)
[System]
RegisterName=Yock196            //使用者名稱
RegisterCode=985E543A30ABC8EFG0A//這裡是根據自己的機器碼算的註冊碼!你要是用我這個是不行D說
ProxyUpdata=101
EnableProxy=101
-------------------------------------------------
關於完美註冊後在使用過程中程式會不會再次變回未註冊我就沒有時間測試了,所以還是用C4爆破版本的好!

最後在這裡真心感謝你花了那麼多時間看這篇文章,也藉此機會向這個軟體的作者鞠躬表示歉意!


                                           2003.08.26晚於清遠


相關文章