|
文/陈劲宏
HLP文档现形记
由于helpdeco.exe是一个基于DOS的程序,所以,首先进入MSDOS方式,进入HELPDECO的 安装目录。如果已经将
helpdeco.exe拷贝到要反编译的文件(即.hlp文件)所在的目录里,输入“helpdeco”命令时可以不带路径名。否则,要输入完整的helpdeco.exe所在的路径名,以下例子中均假设它们在同一目录中。
假如要把名为DEMO.HLP的帮助文档进行反编译,在DOS提示符下键入以下命令即可:helpdeco
demo。程序执行结果如图1。屏幕上的信息表明,helpdeco在这个帮助文件里找到并反编译生成了8个主题,这些主题都保存在一个名为HELPME.RTF的文本格式文件里。同时,它发现这个帮助文件使用了位图图形,找到并生成10个位图文件,并且生成了一个名为HELPME.HPJ的项目文件,如果想重新编译帮助文件时,就可以用这个项目文件。如果你在DOS下用“dir”命令或在Windows里用资源浏览器来查看,你将会看到在这个目录里出现了对应于上面所说的文件。
helpdeco.exe还提供了很多的开关供不同目的的反编译者使用。下面是程序的使用方法,提供的开关及其功能:
HELPDECO
helpfile[.hlp] [/y]:反编译帮助文件的所有资源(反编译成各个独立的文件)
HELPDECO
helpfile[.hlp] [/y] /a[annfile.ANN]:添加注解文件
HELPDECO
helpfile[.hlp] /r [/y] [/n]:反编译为相同外观的 RTF文件
HELPDECO
helpfile[.hlp] /c [/y]:生成 Win9X .CNT 目录文件
HELPDECO helpfile[.hlp]
/l:列出本帮助文件的开始点
HELPDECO helpfile[.hlp] /e
[/f]:列出对其他帮助文件的引用
HELPDECO helpfile[.hlp] /p
[/f]:检查对外部帮助文件的引用。
HELPDECO helpfile[.hlp] /d
[/x]:显示内部目录
HELPDECO hehlpfile[.hlp] \"internalfile\"
[/x]:显示内部文件
HELPDECO helpfile[.hlp] \"internalfile\"
filename输出内部文件还有如下开关:
/y 不提示地覆盖已有文件
/f
列出引用主题
/x 十六进制输出
/g 不猜测上下文 ID
/hprefix 添加已知上下文
ID 前缀
/n
不分页
可以看出,用Helpdeco是完全可以让HLP文档现出原形的。惟一不太方便的就是,需要回到久远的DOS环境去工作,而且那么多的参数……这个软件主要是设计给汉化工作者们用的,这是它的一个下载地址:http://ftp.ksut.edu.tw/FTP/cpatch/helputil/helpdeco/helpdc21.zip。你可以去http://plugins.myetang.com/tools/tools/p.duffos21.zip下载一个外壳程序,把它解压至Helpdeco同一个文件夹里(必须在同一文件夹!),以后就不用回到DOS环境了,直接双击解压出来的DuffOS.exe程序就可以了。
反编译一个CHM文件
有时我们需要把一个已经存在的CHM文件反编译,以便把其中的全部内容取出,得到CHM的源文件(HTM文件、TXT文件及CHM文件里的其他文本、图形文件)。我们可以使用前面介绍的Windows
Html help Workshop软件,它不仅可以制作CHM文件,还可以把已经制作好的CHM文件还原。还原的方法是:
先创建一个新的文件夹(也可以用已经存在的文件夹),然后启动Windows
Html help
Workshop,在“File”菜单中选“Decompile”命令,如图1。指定目标文件夹的位置和欲反编译的CHM文件,点击“OK”,反编译很快就会完成。这时在目标文件夹中就保存着CHM中的所有文件和子文件夹,你可以慢慢研究别人的技巧了。
当然,能够反编译.chm文件的软件远远不止这一个,比如“电子文档处理器”,注册后,还可以进行.chm文件的批量反编译呢。
|