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

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

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

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

你可能感兴趣的:(反编译)