XNview 1.96 Full 破解筆記
發(fā)表時(shí)間:2023-06-02 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]【破文標(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)電腦中毒的煩擾。