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 100157A2L
100157A2 XOR EDI EDIL
100157A4 NOPL
100157A5L
記下修改前後的十六進位制碼.
使用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破解手記(三)