自己动手反编译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}

当然,也可以将图片、脚本、样式表之类的一并导出来。

这里的IStorageWrapper其实是封装了Ole32.dll的StgOpenStorage,有兴趣的可以阅读微软的结构化存储(Structured Storage)

dll下载:
/Files/JohnXP/RelatedObjects.Storage.rar

posted on 2007-06-08 16:44  ~~John 的网络涂鸦纪实~~  阅读(548)  评论(0编辑  收藏  举报

导航