IrfanView3.36破解手記
作者:娃娃(NYDoll)
軟體簡介:一個非常優秀的看圖軟體,即使是跟ACDSee相比也未見遜色多少,軟體本是免費軟體,即使不註冊也沒有任何限制,但為了支援作者的繼續升級,還是請有能力的朋友註冊吧:
破解工具:TRW2000 BW2000
____________________________________________________________________________________________________________________________________
我是在華軍下載的漢化版,下載後軟體是用ASPACK加國殼的,你不妨用BW2000+TRW2000脫掉他的殼,以方便反彙編,
然後填寫註冊資訊: Your name: NYDoll Your Code:38383838
都可以隨便填寫,但也有一定的限制,請向下看:
設斷點 BPX HMEMCPY
F5
按OK,立刻被攔下
BC *
PMODULE
來到這裡:
XXX:432FFB MOV
EDX,[004DEF54] 《----------TRW停在這裡
XXX:433001 PUSH
DWORD 0100
XXX:433006 ADD
EDX,0100
XXX:43300C PUSH
EDX
XXX:43300D PUSH
DWORD 045C
按幾下F10馬上又回到系統領空,於是在次下命令PMODULE,回到程式程式碼段,應該停在:
XXX:0044B921 TEST
EAX,EAX
XXX:0044B923 JZ
NEAR 0045051D
XXX:0044B929 LEA
EDI,[ESP+04F8]
XXX:0044B930 OR
ECX,BYTE -01
XXX:0044B933 REPNE SCASB
XXX:0044B937 NOT
ECX
XXX:0044B939 DEC
ECX
XXX:0044B93A CMP
ECX,BYTE +02
《---------- 註冊名的字數必須大於2
XXX:0044B93D JC
NEAR 0044B9CA
XXX:0044B943 LEA
EDI,[ESP+04F8]
XXX:0044B94A OR
ECX,BYTE -01
XXX:0044B94D REPNE SCASB
XXX:0044B94F NOT
ECX
XXX:0044B951 DEC
ECX
XXX:0044B952 CMP
ECX.BYTE +55
《----------- 註冊名的位數必須小於85
XXX:0044B955 JA
0044B9CA
XXX:0044B957 LEA
EDI,[ESP+05F8]
XXX:0044B95E OR
ECX.BYTE -01
XXX:0044B961 XOR
EDX,EDX
XXX:0044B963 REPNE SCASB
XXX:0044B965 NOT
ECX
XXX:0044B967 DEC
ECX
XXX:0044B968 TEST
ECX,ECX
《----------- 判斷所輸入的註冊碼位數是否為零
XXX:0044B96A JNG
0044B9AE
XXX:0044B96C MOV
AL.[ESP+EDX+05F8] 《-------- 程式在這裡開始進入一個迴圈,
AL 分別是註冊碼的每一位
XXX:0044B973 CMP
AL,30
XXX:0044B975 JL
0044B9EB
XXX:0044B977 CMP
AL,39
XXX:0044B979 JNG
0044B980
XXX:0044B97B MOV
EBX,01
XXX:0044B980 LEA
EDI,[ESP+05F8]
《----- 看到我們輸入的 Fuck Code
XXX:0044B987 OR
ECX,BYTE -01
XXX:0044B98A XOR
EAX,EAX
XXX:0044B98C INC
EDX
XXX:0044B98D REPNE SCASB
XXX:0044B98F NOT
ECX
XXX:0044B991 DEC
ECX
XXX:0044B992 CMP
EDX,ECX
《----- EDX 為迴圈次數,ECX為註冊碼字元個數
用這個對比語句判斷迴圈是否完成
XXX:0044B994 JL
0044B96C
《----- 如果 迴圈次數小於註冊碼字元數說明迴圈沒有完成
跳到0044B96C處繼續判斷註冊
碼是否符合標準
XXX:0044B996 TEST
EBX,EBX
XXX:0044B998 JZ
0044B9AE
《---- 應該跳
XXX:0044B99A PUSH
DWORD 0104
XXX:0044B99F PUSH
DWORD 9CCB
XXX:0044B9A4 PUSH
DWORD 9CCB
XXX:0044B9A9 JMP
004491A1
XXX:0044B9AE LEA
EDX,[ESP+05F8]
XXX:0044B9B5 LEA
EAX,[ESP+04F8]
XXX:0044B9BC PUSH
EDX
《--------- 壓入Fuck Code
XXX:0044B9BD PUSH
EAX
《--------- 壓入Name
XXX:0044B9BE Call
00432D00
《――――― 關鍵Call 按F8進入
XXX:0044B9C3 ADD
ESP,BYTE +08
XXX:0044B9C6 TEST
EAX,EAX
《――――― 註冊標誌 EAX值為0則註冊失敗 否則視為註冊成功!
XXX:0044B9C8 JNZ
0044B9DE
《―――― 為0則跳轉到出錯視窗
------------------------------------------------Call----------------------------------------------------------------
XXX:00432D00 MOV
EAX,[ESP+08]
XXX:00432D04 SUB
ESP,BYTE +14
XXX:00432D07 PUSH
EBX
XXX:00432D08 PUSH
EBP
XXX:00432D09 PUSH
ESI
XXX:00432D0A PUSH
EDI
XXX:00432D0B PUSH
EAX
XXX:00432D0C XOR
EBX,EBX
XXX:00432D0E CALL
004A6157
XXX:00432D13 MOV
ESI,[ESP+2C]
XXX:00432D17 MOV
EBP,EAX
XXX:00432D19 MOV
EDI,ESI
... ... 繼續按F10向下追:
XXX:00432D64 LEA
EDX,[ESP+14]
XXX:00432D68 PUSH
ESI
XXX:00432D69 LEA
ESI,[EAX+ECX*2]
XXX:00432D6C SHL
ESI,03
XXX:00432D6F PUSH
ESI
XXX:00432D70 CALL
004B1244
《―――― 如果你跟如入這個Call 你會得到一箇中間資料 299248
接下來就是開始算註冊碼了 在這裡就不詳細列出了
有興趣的Cracker們可以跟進研究研究 非常簡單哦
一直按F10到:
XXX:000B2F75 ADD
DL,30
XXX:000B2F78 MOV
[ESP+11],DL
XXX:000B2F7C LEA
EDX,[ESP+10]
XXX:000B2F80 PUSH
EDX
《―――― 嘣蹦蹦~嘣 終於勝利了
在這裡下D EDX看到的就是真正的註冊碼了 229952408
XXX:000B2F81 CALL
004A6157
XXX:000B2F86 ADD
ESP,BYTE +04
XXX:000B2F89 XOR
ECX,ECX
終於搞定了 好累阿 這是我寫的第一篇破解
是一個保護比較差的軟體 沒有辦法 誰叫俺水平不濟哩 只好撿軟骨頭吃了 呵呵
BYEBYE 如果有錯誤 希望各位前輩指出!!
______________________________________________
娃娃(NYDoll) ―――――――――――――――――――――――――
NYDoll@Etang.Com
QQ: 15110296