• 标 题:菜鸟破解实录 之Terrapin FTP Browser (5千字)
  • 作 者:xiA Qin
  • 时 间:2000-9-9 21:28:21
  • 链 接:http://bbs.pediy.com

菜鸟破解实录 之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