• 飓风软件下载资讯频道,让您掌握最新的IT动态

修改exescope6.10

修改exescope6.10
日期:2004年10月15日 作者:蓝点 人气: 查看:[大字体 中字体 小字体]
 曾经发现有些用upx压缩的软件,用prodump1.62解压后虽然可以反编译,但不能用exescope等察看或修改其中的资源。最近有人又出题,modemspy v1.6。用fileinfo看是upx0.72版压缩,用prodump解压运行无误,wdasm也可以反编译并找到其中的字符串。可是用exescope6.10等就是不能修改,说“"Cannot recognize the internal structure”。
    用ultraedit打开modemspy.exe,在起始部看到
$Id: UPX 0.72 Copyright (C) 1996-1999 Laszlo Molnar & Markus Oberhumer $
$Id: NRV 0.61 Copyright (C) 1996-1999 Markus F.X.J. Oberhumer $
$License: NRV for UPX is distributed under special license
字样,估计就是NRV带来的麻烦。

    猜想NRV防止修改资源的原理是,修改资源前的标记;或者对资源进行特别压缩。如果是前者,exescope等是依照这些标记来显示资源的。最好的办法是找到这些标记,改回来;从而用任何资源修改器都可以认识。只是我才疏学浅,不知方法?在此诚心请教。      如果资源被特别压缩了就很困难了,不过好像还没有看到这类软件,哈哈。

    我的办法是修改exescope,使得不管这些标记对错,都显示。所以用wdasm反编译exescope6.10(872.960字节)英文原版,在“字符串引用”中寻找“Cannot recognize the internal structure”字样,共2处。(1)cs:00436577;(2)cs:004ACD78。用trw分别设断,用exescope打开解压的dump-modemspy.exe,在“字符串”中打开一个,被trw拦下:
......
:004ACD6D 3B45E0        cmp eax, dword ptr [ebp-20] <==eax为0
:004ACD70 7F15          jg 004ACD87                <==not jump
:004ACD72 8B15F8694B00  mov edx, dword ptr [004B69F8]

* Possible Reference to String Resource ID=00140: "Cannot recognize the internal structure, %s"
                                  |
:004ACD78 B88C000000    mov eax, 0000008C
:004ACD7D E86E4A0000    call 004B17F0
:004ACD82 E97B020000    jmp 004AD002

    OK。再用它打开一个没有压缩的程序,
:004ACD6D 3B45E0      cmp eax, dword ptr [ebp-20]  <==eax为一个大数
:004ACD70 7F15        jg 004ACD87                  <==jump

    所以用hiew打开exescope.exe,到
    :004ACD70 7F15        jg 004ACD87
              ~~
改为:004ACD70 EB15        jmp 004ACD87 <==强迫跳转
              ~~
保存后用之修改并保存解压的dump-modemspy.exe,OK。