自己动手反编译CHM帮助文件

反编译chm及电子书的程序很多,网上也有很多例子,这里介绍用.net来反编的简单过程,大家可以扩展

 1 None.gif ITStorageWrapper storage  =   new  ITStorageWrapper( @" d:\help.chm " );
 2 None.gif
 3 None.gif foreach  (IBaseStorageWrapper.FileObjects.FileObject fileObject  in  storage.foCollection)
 4 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
 5InBlock.gif  if (fileObject.CanRead)
 6ExpandedSubBlockStart.gifContractedSubBlock.gif  dot.gif{
 7InBlock.gif    if (fileObject.FileName.EndsWith(".htm"))
 8ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
 9InBlock.gif      MessageBox.Show("Path: " + fileObject.FileName);
10InBlock.gif      fileObject.Save(@"d:\" + fileObject.FileName);
11ExpandedSubBlockEnd.gif    }

12ExpandedSubBlockEnd.gif  }

13ExpandedBlockEnd.gif}

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

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

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

转载于:https://www.cnblogs.com/JohnXP/archive/2007/06/08/776778.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值