修改exescope6.10
曾经发现有些用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。 (出处:赢政天下整理收藏)
相关文章:
相关软件:
→ 特别推荐
→ 热点TOP10
我为人人《《==》》人人为我
关于我们 |
帮助(?)
| 广告服务 |
版权声明 |
商业合作 |
发展历程 |
加盟我们 |
联系我们
Copyright © 1999-2003
winzheng.com All Rights Reserved.
繁体版:由华琦数码技术提供
Powered
by:MeSky.Net
档案馆里的相关老软件
当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。