CHM 其实就是一个伪装过的文件夹
.chm 里面装的是一个再普通不过的小网站:HTML 页面、一两份样式表、几张图片,还有一个 .hhc 目录文件。微软的 ITSS 容器把它们放进一份条目目录中,分布在一到两个内容区段里——区段 0 原样保存,区段 1 用 LZX 压缩。
本工具会列出每个条目的路径、大小、区段和类型,并把它们重新写成真正的文件。ZIP 保留内部路径:/html/page1.htm 变成 html/page1.htm,因此解压后得到的是一个可以直接浏览的文件夹,而不是一堆名字被压平的文件。这正是提取帮助文件的意义所在——页面之间的链接在解压之后仍然有效。
想看底层机制也可以
打开一个开关,列表还会显示常规提取会隐藏起来的 ITSS 流:::DataSpace/NameList、::DataSpace/Storage/MSCompressed/ControlData、LZX 重置表、/#SYSTEM、/#STRINGS 等等。它们是容器的工作方式,偶尔正是你需要看的东西。
无法恢复的条目会如实说明
如果某个条目的字节无法产出,它不会被写进 ZIP,而是出现在失败列表里,并附上具体错误。
之所以如此坚持:本站的 LZX 解码器是依据 [MS-PATCH] 规范和 libmspack 的 lzxd.c 编写的。它的位流读取、Huffman 解码、未压缩块和 x86 过滤器都有单元测试,但 verbatim 和 aligned 块的解码从未在微软自家压缩器的输出上运行过——当时没有可离线测试的语料。
提取结果中出现被截断或损坏的文件,比缺少一个文件更糟糕,因为你要到很久以后才会发现问题,那时文件早已换了地方,而 CHM 也不知去向。所以失败就按失败报告。
还会显示
帮助文件的标题、默认主题、目录和索引文件名、生成它的编译器,以及内容区段所用的压缩方式。如果想阅读页面而不是提取,请使用 CHM 查看器。
隐私
帮助文件在你的浏览器中打开并解包,不上传任何内容。
Tiny Online Tools







