程序员必备工具(4):解密EXE程序软件
软件世界
俗话说得好“师夷长技以自强”。让我们来打开EXE程序,探究其中的奥妙吧!
EXE程序其实是一种语言,一般我们称之为“机器语言”。“机器语言"和其他的C#,VB、Pascal、Java语言不同。它是一种低级的语言,是面向过程的,而非以上列举的面向对象的高级语言。它根据CPU芯片的不同而不同。如PC机上的程序无法用在Mac机上一样。
不过,让大家去学“机器语言”好像不太合情理,于是,各种各样的打开EXE程序的软件层出不穷。
一、Exescope
Exescope(下载地址:http://www.newhua.com/exescope.htm)相信我不用再介绍了,一款堪称Delphi编程经典的软件,它的运行界面如(图1)。

著名的程序资源查看工具,任何你想看的资源、图片、菜单、AVI动画、WAV声音,甚至能进行小范围的Delphi程序反编译。笔者还经常用它提供的导入功能看一看程序调用了哪些DLL链接库的哪些API函数。虽然这一功能远不能和BoundsChecker、APISPY32等专业级的查看API调用情况的商用软件相提并论,但对笔者来说已经足够了。
二、DeDe
什么?Exescope的Delphi程序反编译不够用?别忙,这里还有一款绝对够用的Delphi程序反编译的软件──DeDe(下载地址:http://www.csdn.net/cnshare/soft/4/4554.shtm)。
DeDe是一款专门用于Delphi程序反编译的软件,它的运行界面如(图2)。

DeDe有时甚至能把Delphi程序的窗体文件进行彻底的反编译,不过更多的时候是没有完全反编译完。当然,因为Pascal语言是一种面向对象的高级语言,能反编译到这种程度实属不易了。不过,请大家在反编译的时候小心不要违反版权法的规定。
三、W32Dasm
什么?还不过瘾?只能反编译Delphi?那么W32Dasm(下载地址:http://www.csdn.net/cnshare/soft/4/4508.shtm)一定能满足你的要求了。
W32Dasm是一款不错的EXE程序To汇编语言的软件,它的运行界面如(图3)。

W32Dasm不仅反编译的速度快,而且反编译几十万行的汇编语言之后,它还附有详尽的说明,应该能够看得懂。当然,笔者是不大懂汇编语言的,只能看一看这些软件的算法或者把W32Dasm当做一款Win32程序的纠错器来用了。它可以在汇编语言层对正在运行中的程序进行纠错,笔者经常用它来替代Delphi6的纠错环境。
四、ProcDump32
有的人说了,我用的这些软件,对有些程序就是打不开,提示什么“该程序可能被压缩,无法进行编辑查看”。这种情况大约就是因为这些程序是用了某种EXE压缩软件进行过压缩,PE结构的特殊性使得这些程序无法被编辑。不过,我们不愿意就此作罢,这里还有一款解包的工具──ProcDump32(下载地址:http://www.newhua.com/ProcDump.htm)。
ProcDump32的运行界面如(图4)。

ProcDump不仅能进行解包,还可以进行PE重建,PE编辑等操作。它可以解开Aspack、Upx、PECompact、CodeSafe大约22种压缩格式,功能实在是强。甚至ProcDump还可以当做一个业余的进程查看器呢!
OK,有了这些工具,你就可以把那些莫名其妙的EXE程序轻松地打开,仔细地检查而不会被那些杂乱无章的EXE程序吓昏头了吧!
程序员必备工具系列文章,到这里我们就全部介绍完了,后面发现好的我再给你们介绍吧!