I've got it!有興趣的看過來! (3千字)

看雪資料發表於2001-02-17

JRun Studio 3.0 是編輯、除錯JSP程式的優秀軟體,但有30天使用限期!
win98下很簡單,但Win2000下我也想到了辦法!哈哈。。。

------------NAG window和時間限制(脫殼)只能用於WIN98,在NT下見第二部分-----------
(1).用W32Dasm  Load jrs3.exe當機!原來它用Aspack2.001加殼,但Unaspack
    後不能用。只能手動去殼。

(2)Blast Wave 2000 v0.2 知入口為0077C2B0.
(3)用Trw2000 Load,
bpx 0077C2B0
  0077C361  je -----            ;jump 下面出現Flash視窗
  0077C380  je 0077C3D2            ;若在30天內,jump 跳0077C3D2處jrs3正常執行
  0077C39E  call ---            ;否則彈出註冊視窗,退出
  0077C3D2  -----        ;jrs3執行

(4)再用Trw2000 Load,
bpx 0077C2B0
pedump d:\a.exe
makepe d:\b.exe      ;無效!
suspend

(5)用ProcDump,Dump All >b.exe
PE Editor 觀察a.exe 入口地址為0037C2B0
於是將b.exe入口地址改為0037C2B0

(6)用HView Search (3)的Decode碼,將其改為jne ??? jne ???
也可以在(4)時修改記憶體後Dump All.
OK!

----------------------WIN2000下手動脫殼-----------------------

⑴ 用上述方法softice 4.05和prodump在WIN2000下
a
jmp eip
ProcDump:Dump All >b.exe 後不知如何改PE,Stop here.

㈡ 只能編寫Patch程式,用HView反彙編原壓縮程式jrstudio3.exe:
?009664ED: 89856F2E4400    mov        [ebp][000442E6F],eax  ;
?009664F3: 61              popad                    ;
* 009664F4: 75??            jne 0009664FE                      ;改為 jne        0009664F6
?009664F6: mov eax,??                                        ;改為 C60580C3770073  mov b,[00077C380],073
?009664FD: mov esp,??                                        ;改為 90              nop
?009664FE: 6800000000      push        00
  00966503: C3              retn
上述為ASPACK在記憶體中解壓縮的最後一段,
  00966503: retn                              ;到jrs3.exe的程式入口0077C2B0
注意到009664F6-009664FE這一段沒有用到(可用SI 下斷點,不會中斷),因此可用這個空間寫Patch程式。
也可以用UltraEdit 看jrs3.exe程式開頭有無可利用的空間,如ASPACK版本資訊處寫Patch程式。

㈢ 任務是:解壓縮時,把
    0077C380: 74??? je  0077C3D2          ;若在30天內,跳0077C3D2處jrs3正常執行
改為0077C380: 75??? jne 0077C3D2,            ;若不在30天內,也跳0077C3D2處正常執行
因而在HVIEW改009664F6:mov byte [0077C380],75  ;  (即在記憶體中把[0077C380]處je改為jne)
            009664FD:nop
            009664FE:                  ;以下不改動,進入jrs3.exe的程式入口
          ?00966503:
㈣ 在WIN2000下修改時間過期,執行修改過的jrstudio3.exe,OK!
出現FLASH視窗(...30 days period has expired!)後,可以正常執行了!!!哈哈!
再把時間改在期限內,執行修改過的jrstudio3.exe,出現Flash(You have 25 days left to run...)
    下面卻彈出註冊視窗,點NO後程式退出!!!我倒!
仔細想想,原來在期限內
  0077C380: jne 0077C3D2              ;No jump!在30天內,不跳到0077C3D2處正常執行

㈤ 曾設法改
  0077C380: jmp 0077C3D2 ,但009664F6-009664FE這一段裝不下jmp語句!
想了好多方法都不行,靈機一動,用SI 看0077C380:時FLAGS標誌,Z標誌確實隨時間過期與否變,
但C 標誌不變!都為 0,既只要改為:0077C380: 73???    jnc 0077C3D2
於是用HVIEW改
?009664F6:  C60580C3770073  mov b,[00077C380],073  ;讓它把記憶體0077C380處改為73?? jnc 0077C3D2
?009664FD:  90              nop
這下不管時間是否過期,在win98和win2000下都能用了!:-)

如有人要Patch 程式,mail to me!
hurrah@wx88.net
http://hurrah@go.163.com

相關文章