菜鳥破解實錄 之Terrapin FTP Browser (5千字)

看雪資料發表於2000-09-09

菜鳥破解實錄 之Terrapin FTP Browser 

軟體名稱:Terrapin FTP Browser 
軟體版本:2.2
軟體大小:1.4MB
軟體簡介:
        如果你擁有自己的主頁或是希望更迅速有效地瀏覽遠端的FTP站點,Terrapin FTP Browser應該是你的理想選擇,Terrapin FTP Browser的操作非常簡單,和Windows的資源管理器一樣可以任意拖拽檔案,你還可以從Windows的資源管理器或桌面上直接將檔案拖進Terrapin FTP Browser的視窗進行上傳。它支援整個子目錄的上傳,這對於網站維護者來說是非常有用的。Terrapin FTP Browser還支援離線瀏覽並能夠儲存訪問過的站點的目錄與結構,而且當你再次訪問一個站點時,它會將儲存的資訊與該站點的檔案比較,如果某些檔案發生了改變,它會用一個特殊的圖示進行標識,以提醒你該檔案已經更新。Terrapin FTP Browser的另一個不同尋常的功能是可以在兩個遠端電腦中進行傳輸,這對於軟體站點的Webmaster來說是一個多麼好的特性啊,因為用它可以輕鬆地將國外站點的軟體拉到國內的伺服器中,省去了下載、上傳所耗費的時間與金錢。除了上述功能外,Terrapin FTP Browser同樣也具有其他優秀的FTP軟體的大多數功能。......


作    者:xiA Qin
解密日前:2000年9月5日
解密工具:Trw2000 1.22

說    明:本文是在我的軟體破解記錄上整理出來的。如若有紕漏,請各位大俠多指教!



輸入註冊資訊:
註冊 碼:11111-222222-33333
         
         

注:為了方便說明,分為2段。
    第1段為:11111
    第2段為:22222
    第3段為:33333


下指令bpx hmemcpy    //下中斷點 

按F5回到程式,按確定,這時會被Trw2000攔截到。

下指令bd *            //屏障中斷點

下指令pmodule        //直接跳到程式的領空


按F10來到下面指令

015F:00449561  LEA      EAX,[EBP-4C]
015F:00449564  PUSH    EAX
015F:00449565  CALL    0043E7D8        //有問題,按F8進入。
015F:0044956A  ADD      ESP,BYTE +04
015F:0044956D  TEST    EAX,EAX        //用eax當旗標,eax=1註冊成功。
015F:0044956F  JNZ      004495AD       
015F:00449571  PUSH    BYTE +00
015F:00449573  PUSH    BYTE +00
015F:00449575  PUSH    DWORD 004D5653
015F:0044957A  CALL    00499F40        //註冊失敗
015F:0044957F  MOV      DWORD [EBP-04],00
015F:00449586  LEA      ECX,[EBP-4C]
015F:00449589  CALL    004A9BAC
015F:0044958E  MOV      DWORD [EBP-04],FFFFFFFF
015F:00449595  LEA      ECX,[EBP-58]
015F:00449598  CALL    004A9BAC
015F:0044959D  XOR      EAX,EAX
015F:0044959F  MOV      ECX,[EBP-0C]
015F:004495A2  MOV      [FS:00],ECX
015F:004495A9  MOV      ESP,EBP
015F:004495AB  POP      EBP
015F:004495AC  RET   

...................
015F:0043E7DB  PUSH    BYTE -01
015F:0043E7DD  PUSH    DWORD 0043E9D5
015F:0043E7E2  MOV      EAX,[FS:00]
015F:0043E7E8  PUSH    EAX
015F:0043E7E9  MOV      [FS:00],ESP
015F:0043E7F0  SUB      ESP,BYTE +08
015F:0043E7F3  SUB      ESP,BYTE +58
015F:0043E7F6  PUSH    EBX
015F:0043E7F7  PUSH    ESI
015F:0043E7F8  PUSH    EDI
015F:0043E7F9  MOV      EAX,[EBP+08]
015F:0043E7FC  CMP      DWORD [EAX+04],BYTE +0F  //檢查輸入的註冊碼位數,15位。
015F:0043E800  JNZ      0043E87A                //不相等,就跳。
015F:0043E802  MOV      EBX,[004D337C]
015F:0043E808  PUSH    DWORD [004D337C]
015F:0043E80E  CALL    0047E428
015F:0043E813  ADD      ESP,BYTE +04
015F:0043E816  TEST    EAX,EAX
015F:0043E818  JZ      NEAR 0043E89F
015F:0043E81E  PUSH    BYTE +05
015F:0043E820  LEA      ECX,[EBP-6C]
015F:0043E823  PUSH    ECX
015F:0043E824  MOV      ECX,[EBP+08]
015F:0043E827  CALL    004B5758
.      .      .          .
.      .      .          .   
.      .      .          .

015F:0043E8A5  MOV      ECX,[EBP+08]
015F:0043E8A8  CALL    004B5758
015F:0043E8AD  MOV      DWORD [EBP-04],02
015F:0043E8B4  PUSH    EAX
015F:0043E8B5  LEA      ECX,[EBP-3C]
015F:0043E8B8  CALL    004A9B34
015F:0043E8BD  MOV      DWORD [EBP-04],03
015F:0043E8C4  PUSH    EAX
015F:0043E8C5  LEA      EAX,[EBP-54]
015F:0043E8C8  PUSH    EAX
015F:0043E8C9  CALL    0043E9DF            //根據11111計算正確的註冊碼。按F8進入。
015F:0043E8CE  MOV      DWORD [EBP-04],04    都是浮點指令,我看不懂。
015F:0043E8D5  PUSH    BYTE +09
015F:0043E8D7  LEA      EAX,[EBP-30]
015F:0043E8DA  PUSH    EAX
015F:0043E8DB  LEA      ECX,[EBP-54]        //正確的註冊碼 D EBP-54
015F:0043E8DE  CALL    004B56EC
015F:0043E8E3  MOV      DWORD [EBP-04],05
015F:0043E8EA  MOV      [EBP-18],EAX
015F:0043E8ED  PUSH    BYTE +09
015F:0043E8EF  LEA      ECX,[EBP-24]
015F:0043E8F2  PUSH    ECX
015F:0043E8F3  MOV      ECX,[EBP+08]
015F:0043E8F6  CALL    004B56EC
015F:0043E8FB  MOV      DWORD [EBP-04],06
015F:0043E902  PUSH    DWORD [EAX]
015F:0043E904  MOV      EAX,[EBP-18]
015F:0043E907  PUSH    DWORD [EAX]
015F:0043E909  CALL    0047DFC8            //比較註冊碼CAll。
015F:0043E90E  ADD      ESP,BYTE +08
015F:0043E911  TEST    EAX,EAX
015F:0043E913  JNZ      0043E924
015F:0043E915  PUSH    BYTE +2D
015F:0043E917  LEA      ECX,[EBP-54]
015F:0043E91A  CALL    004AA044
015F:0043E91F  CMP      EAX,BYTE -01
015F:0043E922  JZ      0043E928
015F:0043E924  XOR      EBX,EBX
015F:0043E926  JMP      SHORT 0043E92D
015F:0043E928  MOV      EBX,01
015F:0043E92D  MOV      DWORD [EBP-04],05
015F:0043E934  LEA      ECX,[EBP-24]
015F:0043E937  CALL    004A9BAC
015F:0043E93C  MOV      DWORD [EBP-04],04
015F:0043E943  LEA      ECX,[EBP-30]
015F:0043E946  CALL    004A9BAC
015F:0043E94B  ADD      ESP,BYTE +08
015F:0043E94E  TEST    EBX,EBX
015F:0043E950  JZ      0043E995
015F:0043E952  MOV      DWORD [EBP-04],07
015F:0043E959  LEA      ECX,[EBP-3C]
015F:0043E95C  CALL    004A9BAC
015F:0043E961  MOV      DWORD [EBP-04],08
015F:0043E968  LEA      ECX,[EBP-48]
015F:0043E96B  CALL    004A9BAC
015F:0043E970  MOV      DWORD [EBP-04],FFFFFFFF
015F:0043E977  LEA      ECX,[EBP-54]
015F:0043E97A  CALL    004A9BAC
015F:0043E97F  MOV      EAX,01              <--將EAX賦值為1
015F:0043E984  MOV      ECX,[EBP-0C]
015F:0043E987  MOV      [FS:00],ECX
015F:0043E98E  POP      EDI
015F:0043E98F  POP      ESI
015F:0043E990  POP      EBX
015F:0043E991  MOV      ESP,EBP
015F:0043E993  POP      EBP
015F:0043E994  RET   


整理一下:
註冊碼:11111-1PAR3-23C89

相關文章