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破解手记(三)