自己动手反编译CHM帮助文件
反编译chm及电子书的程序很多,网上也有很多例子,这里介绍用.net来反编的简单过程,大家可以扩展
1
ITStorageWrapper storage = new ITStorageWrapper(@"d:\help.chm");
2![]()
3
foreach (IBaseStorageWrapper.FileObjects.FileObject fileObject in storage.foCollection)
4
{
5
if (fileObject.CanRead)
6
{
7
if (fileObject.FileName.EndsWith(".htm"))
8
{
9
MessageBox.Show("Path: " + fileObject.FileName);
10
fileObject.Save(@"d:\" + fileObject.FileName);
11
}
12
}
13
}
ITStorageWrapper storage = new ITStorageWrapper(@"d:\help.chm");2

3
foreach (IBaseStorageWrapper.FileObjects.FileObject fileObject in storage.foCollection)4
{5
if (fileObject.CanRead)6
{7
if (fileObject.FileName.EndsWith(".htm"))8
{9
MessageBox.Show("Path: " + fileObject.FileName);10
fileObject.Save(@"d:\" + fileObject.FileName);11
}12
}13
}当然,也可以将图片、脚本、样式表之类的一并导出来。
这里的IStorageWrapper其实是封装了Ole32.dll的StgOpenStorage,有兴趣的可以阅读微软的结构化存储(Structured Storage)
dll下载:
/Files/JohnXP/RelatedObjects.Storage.rar
posted on 2007-06-08 16:44 ~~John 的网络涂鸦纪实~~ 阅读(556) 评论(0) 收藏 举报


浙公网安备 33010602011771号