自己动手反编译CHM帮助文件
反编译chm及电子书的程序很多,网上也有很多例子,这里介绍用.net来反编的简单过程,大家可以扩展
1ITStorageWrapper storage = new ITStorageWrapper(@"d:\help.chm");
2
3foreach (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}
2
3foreach (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 的网络涂鸦纪实~~ 阅读(551) 评论(0) 编辑 收藏 举报