明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

XNview 1.96 Full 破解筆記

[摘要]【破文標(biāo)題】XNview 1.96 Full 破解筆記 【破文作者】蕭蕭黃葉 【作者郵箱】 【作者主頁(yè)】 【破解工具】OllyICE, PEiD v0.94 【破解平臺(tái)】WinXP 【軟...

【破文標(biāo)題】XNview 1.96 Full 破解筆記

【破文作者】蕭蕭黃葉

【作者郵箱】

【作者主頁(yè)】

【破解工具】OllyICE, PEiD v0.94

【破解平臺(tái)】WinXP

【軟件名稱】XNview 1.96 Full

【軟件大小】14.92 M

【原版下載】http://www1.skycn.com/soft/2717.html

【更新時(shí)間】2009-02-25

【軟件類別】國(guó)外軟件 / 圖像瀏覽

【軟件語(yǔ)言】英文

【軟件類別】國(guó)外軟件 / 圖像瀏覽

【應(yīng)用平臺(tái)】Win9x/WinNT/Win2000/WinXP

【保護(hù)方式】

【軟件簡(jiǎn)介】支持多達(dá) 70 種格式的圖形瀏覽、轉(zhuǎn)換、編輯軟件, 還可制作 Slide Show。 是否嫌ACDSEE

太大功能太少?XNVIEW能很好地解決問題, 他具有抓圖、編輯圖象、增加特效的功能, 支持你所知道的

所有格式及你不知道的格式(包括電影、MP3)。 支持簡(jiǎn)體中文語(yǔ)言。

【破解聲明】高手請(qǐng)飄過~~~

------------------------------------------------------------------------

【破解過程】先運(yùn)行看看注冊(cè)失敗的提示, 跳出對(duì)話框:注冊(cè)非法

一、探殼

PEiD v0.94:Microsoft Visual C++ 6.0

二、OllyICE分析

程序載入后停在這里:

005A7A81 >/$  55            PUSH EBP

005A7A82  .  8BEC          MOV EBP,ESP

005A7A84  .  6A FF         PUSH -1

F9運(yùn)行程序, 用你喜歡的姓名注冊(cè), 填入假碼, 確定前下GetDlgItemTextA斷點(diǎn), 確定后程序被斷下了:

77D6B05E >  8BFF            MOV EDI,EDI                              ;

USER32.GetDlgItemTextA

77D6B060    55              PUSH EBP

77D6B061    8BEC            MOV EBP,ESP

清除斷點(diǎn), 慢慢F8返回到這里:

00575F44   .  56            PUSH ESI                                 ; hWnd

00575F45   .  FFD7          CALL EDI                                 ; \GetDlgItemTextA

00575F47   .  8D4C24 10     LEA ECX,DWORD PTR SS:[ESP+10]            ;  返回 到這里。

00575F4B   .  6A 20         PUSH 20                                  ; /Count = 20 (32.)

00575F4D   .  51            PUSH ECX                                 ; Buffer

00575F4E   .  68 D1070000   PUSH 7D1                                 ; ControlID = 7D1

(2001.)

00575F53   .  56            PUSH ESI                                 ; hWnd

00575F54   .  FFD7          CALL EDI                                 ; \GetDlgItemTextA

00575F56   .  8A4424 70     MOV AL,BYTE PTR SS:[ESP+70]              ;  上面兩個(gè)CALL后得到

了姓名和注冊(cè)碼的長(zhǎng)度

00575F5A   .  84C0          TEST AL,AL

00575F5C   .  0F84 3A010000 JE xnview.0057609C                       ;  如果沒有填入姓名就

跳走了。

00575F62   .  8A4424 10     MOV AL,BYTE PTR SS:[ESP+10]

00575F66   .  84C0          TEST AL,AL

00575F68   .  0F84 2E010000 JE xnview.0057609C                       ;  如果沒有填入注冊(cè)碼

就跳走了。

00575F6E   .  8D5424 08     LEA EDX,DWORD PTR SS:[ESP+8]

00575F72   .  8D4424 70     LEA EAX,DWORD PTR SS:[ESP+70]

00575F76   .  52            PUSH EDX

00575F77   .  50            PUSH EAX

00575F78   .  E8 035DF9FF   CALL xnview.0050BC80                     ;  關(guān)鍵CALL, 跟進(jìn)!

00575F7D   .  8D4C24 18     LEA ECX,DWORD PTR SS:[ESP+18]

00575F81   .  51            PUSH ECX

00575F82   .  E8 6CCE0200   CALL xnview.005A2DF3

00575F87   .  8B4C24 14     MOV ECX,DWORD PTR SS:[ESP+14]

00575F8B   .  83C4 0C       ADD ESP,0C

00575F8E   .  3BC8          CMP ECX,EAX

00575F90      74 5D         JE SHORT xnview.00575FEF                 ;  關(guān)鍵跳, 一跳就死!

00575F92   .  A1 40317600   MOV EAX,DWORD PTR DS:[763140]

關(guān)鍵CALL0050BC80 跟進(jìn)如下:

首先是第一個(gè)循環(huán):

0050BCA9  . /74 21         JE SHORT xnview.0050BCCC

0050BCAB  > 8A0C16        /MOV CL,BYTE PTR DS:[ESI+EDX]            ;  從這里開始第一個(gè)循

環(huán)計(jì)算。

0050BCAE  . 8AD9          MOV BL,CL                               ;  依次取姓名每一個(gè)字

符的ASCII碼放到BL上

0050BCB0  . 3298 B8CF7500 XOR BL,BYTE PTR DS:[EAX+75CFB8]         ;  姓名ASCII碼與

EAX+75CFB8處的數(shù)值作異或運(yùn)算。 EAX=循環(huán)的次數(shù)。

0050BCB6  . 40            INC EAX

0050BCB7  . 83F8 05       CMP EAX,5

0050BCBA  . 881C16        MOV BYTE PTR DS:[ESI+EDX],BL            ;  將計(jì)算結(jié)果保存

0050BCBD  . 8888 B7CF7500 MOV BYTE PTR DS:[EAX+75CFB7],CL         ;  用計(jì)算結(jié)果填充

EAX+75CFB8

0050BCC3  . 75 02         JNZ SHORT xnview.0050BCC7               ;  如果循環(huán)超過5次就將

EAX清零, 從新參加計(jì)算, 此時(shí)EAX+75CFB8已經(jīng)不是原來(lái)的值, 而第一次異或運(yùn)算的結(jié)果。

0050BCC5  . 33C0          XOR EAX,EAX

0050BCC7  > 46            INC ESI

0050BCC8  . 3BF5          CMP ESI,EBP

0050BCCA  .^ 72 DF         \JB SHORT xnview.0050BCAB                ;  姓名都計(jì)算完了就結(jié)

束這個(gè)循環(huán)。

0050BCCC  > \33FF          XOR EDI,EDI

0050BCCE  .  33C9          XOR ECX,ECX

數(shù)據(jù)窗口跟隨0075CFB8

0075CFB8  AA 89 C4 FE 46 78 F0 D0 03 E7 F7 FD F4 E7 B9 B5  獕寧Fx鸚琪綣

第二、三、四個(gè)循環(huán):

0050BCCE  .  33C9          XOR ECX,ECX

0050BCD0  .  85ED          TEST EBP,EBP

0050BCD2  .  76 26         JBE SHORT xnview.0050BCFA

0050BCD4  >  8A9F BDCF7500 /MOV BL,BYTE PTR DS:[EDI+75CFBD]         ;  取0075CFB8處后面五

組數(shù)來(lái)進(jìn)行運(yùn)算

0050BCDA  .  8BF5          MOV ESI,EBP

0050BCDC  .  2BF1          SUB ESI,ECX

0050BCDE  .  4E            DEC ESI

0050BCDF  .  8A0416        MOV AL,BYTE PTR DS:[ESI+EDX]            ;  將第一次計(jì)算的結(jié)果

再合出來(lái)與上面的數(shù)作異或運(yùn)算。 但是, 順序是相反的, 上次運(yùn)算的第一個(gè)結(jié)果此次最后運(yùn)算。

0050BCE2  .  32D8          XOR BL,AL

0050BCE4  .  47            INC EDI

0050BCE5  .  881C16        MOV BYTE PTR DS:[ESI+EDX],BL

0050BCE8  .  8887 BCCF7500 MOV BYTE PTR DS:[EDI+75CFBC],AL

0050BCEE  .  83FF 05       CMP EDI,5

0050BCF1  .  75 02         JNZ SHORT xnview.0050BCF5

0050BCF3  .  33FF          XOR EDI,EDI

0050BCF5  >  41            INC ECX

0050BCF6  .  3BCD          CMP ECX,EBP

0050BCF8  .^ 72 DA         \JB SHORT xnview.0050BCD4

0050BCFA  >  33F6          XOR ESI,ESI

0050BCFC  .  33FF          XOR EDI,EDI

0050BCFE  .  85ED          TEST EBP,EBP

0050BD00  .  76 21         JBE SHORT xnview.0050BD23

0050BD02  >  8A0417        /MOV AL,BYTE PTR DS:[EDI+EDX]

0050BD05  .  8A8E C2CF7500 MOV CL,BYTE PTR DS:[ESI+75CFC2]         ;  第三組數(shù)來(lái)參加運(yùn)算

0050BD0B  .  32C8          XOR CL,AL

0050BD0D  .  46            INC ESI

0050BD0E  .  880C17        MOV BYTE PTR DS:[EDI+EDX],CL

0050BD11  .  8886 C1CF7500 MOV BYTE PTR DS:[ESI+75CFC1],AL

0050BD17  .  83FE 05       CMP ESI,5

0050BD1A  .  75 02         JNZ SHORT xnview.0050BD1E

0050BD1C  .  33F6          XOR ESI,ESI

0050BD1E  >  47            INC EDI

0050BD1F  .  3BFD          CMP EDI,EBP

0050BD21  .^ 72 DF         \JB SHORT xnview.0050BD02

0050BD23  >  33FF          XOR EDI,EDI

0050BD25  .  33C9          XOR ECX,ECX

0050BD27  .  85ED          TEST EBP,EBP

0050BD29  .  76 26         JBE SHORT xnview.0050BD51

0050BD2B  >  8A9F C7CF7500 /MOV BL,BYTE PTR DS:[EDI+75CFC7]         ;  第四組數(shù)再來(lái)參加運(yùn)

算。

0050BD31  .  8BF5          MOV ESI,EBP

0050BD33  .  2BF1          SUB ESI,ECX

0050BD35  .  4E            DEC ESI

0050BD36  .  8A0416        MOV AL,BYTE PTR DS:[ESI+EDX]

0050BD39  .  32D8          XOR BL,AL

0050BD3B  .  47            INC EDI

0050BD3C  .  881C16        MOV BYTE PTR DS:[ESI+EDX],BL

0050BD3F  .  8887 C6CF7500 MOV BYTE PTR DS:[EDI+75CFC6],AL

0050BD45  .  83FF 05       CMP EDI,5

0050BD48  .  75 02         JNZ SHORT xnview.0050BD4C

0050BD4A  .  33FF          XOR EDI,EDI

0050BD4C  >  41            INC ECX

0050BD4D  .  3BCD          CMP ECX,EBP

0050BD4F  .^ 72 DA         \JB SHORT xnview.0050BD2B

0050BD51  >  8B7C24 18     MOV EDI,DWORD PTR SS:[ESP+18]

0050BD55  .  33C0          XOR EAX,EAX

最后一個(gè)循環(huán):

0050BD59  .  C707 00000000 MOV DWORD PTR DS:[EDI],0

0050BD5F  .  76 17         JBE SHORT xnview.0050BD78

0050BD61  >  8BC8          /MOV ECX,EAX

0050BD63  .  83E1 03       AND ECX,3

0050BD66  .  8A1C39        MOV BL,BYTE PTR DS:[ECX+EDI]

0050BD69  .  8D3439        LEA ESI,DWORD PTR DS:[ECX+EDI]

0050BD6C  .  8A0C10        MOV CL,BYTE PTR DS:[EAX+EDX]

0050BD6F  .  02D9          ADD BL,CL                               ;  最后的注冊(cè)碼只有四

組數(shù)值, 如果運(yùn)算時(shí)參加運(yùn)算的字符多于四個(gè)就會(huì)得到超過四組的數(shù)值, 將后面的往前面的上面相加,

如第五個(gè)加到第一個(gè)上, 第六個(gè)加到第二個(gè)上等等。

0050BD71  .  40            INC EAX

0050BD72  .  3BC5          CMP EAX,EBP

0050BD74  .  881E          MOV BYTE PTR DS:[ESI],BL

0050BD76  .^ 72 E9         \JB SHORT xnview.0050BD61

0050BD78  >  5F            POP EDI

0050BD79  .  5E            POP ESI

這個(gè)CALL得到了我們要的注冊(cè)碼的十六進(jìn)制

00575F82位置上的CALL xnview.005A2DF3則是將填入的注冊(cè)碼換算成十六進(jìn)制。

最后

00575F87   .  8B4C24 14     MOV ECX,DWORD PTR SS:[ESP+14]

00575F8B   .  83C4 0C       ADD ESP,0C

00575F8E   .  3BC8          CMP ECX,EAX                              ;  這里是真假碼的十六

進(jìn)制形式的對(duì)比。

00575F90      74 5D         JE SHORT xnview.00575FEF                 ;  關(guān)鍵跳, 一跳就死!

------------------------------------------------------------------------

【破解總結(jié)】將你填入的姓名與一組數(shù)作一定的運(yùn)算得到的結(jié)果再轉(zhuǎn)化為十進(jìn)制就是正確的注冊(cè)碼。

具體算法:

固定數(shù)值:AA 89 C4 FE 46 78 F0 D0 03 E7 F7 FD F4 E7 B9 B5 1B C9 50 73 平均分為五組。

取姓名的每一個(gè)字符的ASCII碼與上面的第一組作異或運(yùn)算, 結(jié)果為int1(a)

將int1(a)倒序與第二組數(shù)作異或運(yùn)算, 結(jié)果為int1(a), 同樣的方法再運(yùn)算四次。

將int1(a)合并為四個(gè)數(shù), 超過的依次加到前面。


上面是電腦上網(wǎng)安全的一些基礎(chǔ)常識(shí),學(xué)習(xí)了安全知識(shí),幾乎可以讓你免費(fèi)電腦中毒的煩擾。