• 标 题:ReGet Junior 2.0破解手记(一) (3千字)
  • 作 者:囚童
  • 时 间:2002-2-23 18:18:32
  • 链 接:http://bbs.pediy.com

ReGet Junior 2.0破解手记(一)

作者: 囚童[FCG][BCG]
课题: (一)解除ReGet Junior 2.0广告动画画面
背景: PACKED WITH ASProtect v1.2
下载: http://www.cn778.net/download/c_bexpress.zip
工具: TRW2000
    Ultra Edit 32
    FileMon V4.29

ReGet Junior 2.0支持HTTP与FTP续传,内建10种语言,可以按照需要来切换.可设置
/储存下传文件名单,万一FTP Server接不通,ReGet会一直会试下传文件直到完成为
止.它也可以下传整个目录,自定同时下传文件的数目,节省时间与省却不少麻烦。

ReGet Junior 2.0是一个免费软件,但在开始运行时会有一个一现而过的显示软件名
称和版本号的BANNER,程序主窗口的上方始终有一个动画广告BANNER窗口,没有注册入口。

先运行FileMon,然后安装ReGet Junior 2.0,从FileMon可以看到在安装过程中,向
C:\WINDOWS\SYSTEM目录中写入了一些文件,其中有.DLL文件和.GIF文件。

将安装后的ReGet Junior 2.0主文件regetjr.exe做一个备份.

运行regetjr.exe,从FileMon可以看到,regetjr会从C:\WINDOWS\SYSTEM中读取一些
文件,其中有cd_clint.dll、b_372800.GIF和b_372900.GIF.



解除ReGet Junior 2.0广告动画画面方法一:

用资源管理器打开C:\WINDOWS\SYSTEM,在AdCache子目录下找到图形动画文件b_372800
.GIF和b_372900.GIF,将其后缀改为G1F或干脆删除。

再次运行regetjr.exe,广告动画画面消失。



解除ReGet Junior 2.0广告动画画面方法二:

启动TRW2000,点OK,TRW2000在屏幕右下角生成一个小图标.

运行regetjr.exe,当显示软件名称和版本号的BANNER完整出现并稳定时,按下CTRL+N,
程序被TRW2000中断。

下指令: BPX GETPROCADDRESS
按F5,程序运行并被TRW截获.(若截获不到,可退出重来。)
下指令: BD* ;清中断.

下指令: PMODULE
回到regetjr域:

0167:00429207  PUSH  DWORD 0046D2B8
0167:0042920E  CALL  NEAR [004601F0]
0167:00429214  XOR  EDI,EDI
0167:00429214  XOR  EDI,EDI
0167:00429216  MOV  [ESI+28],EAX
0167:00429219  CMP  EAX,EDI
0167:0042921B  JZ    0042923B
0167:0042921D  MOV  EBX,[004600F0]
0167:00429223  PUSH  DWORD 0046D2AC
0167:00429228  PUSH  EAX
0167:00429229  CALL  EBX
0167:0042922B  PUSH  DWORD 0046D29C 〈== 光标停在这里
0167:00429230  MOV  [ESI+30],EAX 〈== EAX=10015792
0167:00429233  PUSH  DWORD [ESI+28]
0167:00429236  CALL  EBX
0167:00429238  MOV  [ESI+2C],EAX

向上看,在进入这个CALL之前,程序在429223处向堆栈压入一个数46D2AC,我们来看
一下里面是什么。

下指令: D DS:46D2AC
TRW给出:
0046D2AC 53 65 72 76 69 63 65 53-68 6F 77 00 43 44 5F 43 ServiceShow.CD_C
0046D2BC 6C 69 6E 74 2E 64 6C 6C-00 00 00 00 2E 45 58 45 lint.dll.....EXE

哈,正是我们在安装ReGet Junior 2.0时看到的cd_clint.dll。ServiceShow是它的一
个函数,EAX=10015792是函数的入口。

下指令: BPX ServiceShow
按F5,程序运行并被TRW截获.来到cd_clint域:

0167:10015792  MOV  EAX,10037056 〈== 光标停在这里
0167:10015797  CALL  10027CC8
0167:1001579C  SUB  ESP,BYTE +14
0167:1001579F  PUSH  EBX
0167:100157A0  PUSH  ESI
0167:100157A1  PUSH  EDI
0167:100157A2  MOV  EDI,[EBP+08] 〈==  EDI<=E5
0167:100157A5  LEA  ECX,[EBP-18]
0167:100157A8  MOV  [EBP-10],ESP
0167:100157AB  MOV  [1004DA30],EDI
0167:100157B1  CALL  10013BE6
0167:100157B6  MOV  EBX,[EBP+28]

下指令: BD* ;清中断.

按F10,一路走一路看,来到100157A2,此时EDI=E5。
试着下指令: REDI 0
按F5试一下。好,广告动画画面消失。

我们来动手改程序:

下指令: A 100157A2↙

100157A2 XOR EDI EDI
100157A4 NOP↙
100157A5↙

记下修改前后的十六进制码.
使用Ultra Edit 32,按下面的方法对cd_clint.dll做最后的修改:

578B7D088D4DE8
--31FF90------

将修改后的cd_clint.dll存放在与regetjr.exe同一个目录中。

解除ReGet Junior 2.0广告动画画面的任务到此完成。

相关文章:ReGet Junior 2.0破解手记(一) ReGet Junior 2.0破解手记(二) ReGet Junior 2.0破解手记(三