• 标 题:I've got it!有兴趣的看过来! (3千字)
  • 作 者:hurrah
  • 时 间:2001-2-17 9:29:26
  • 链 接:http://bbs.pediy.com

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