申請加入BCG的破解文章之一 (6千字)

看雪資料發表於2001-05-06

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

相關文章