Eine CHM ist ein verkleideter Ordner
In einer .chm steckt eine ganz gewöhnliche kleine Website: HTML-Seiten, ein oder zwei Stylesheets, ein paar Bilder und eine .hhc-Inhaltsdatei. Microsofts ITSS-Container hält sie in einem Verzeichnis von Einträgen, verteilt auf einen oder zwei Inhaltsabschnitte — Abschnitt 0 unverändert, Abschnitt 1 mit LZX gepackt.
Dieses Werkzeug listet jeden Eintrag mit Pfad, Größe, Abschnitt und Typ und schreibt sie als echte Dateien zurück. Das ZIP behält die internen Pfade: /html/page1.htm wird html/page1.htm, sodass beim Entpacken ein durchklickbarer Ordner entsteht und kein Haufen Dateien mit verstümmelten Namen. Genau darum extrahiert man eine Hilfedatei — die Verweise zwischen den Seiten funktionieren danach noch.
Die Mechanik, falls gewünscht
Hinter einem Schalter zeigt die Liste auch die ITSS-Streams, die eine normale Extraktion verbirgt: ::DataSpace/NameList, ::DataSpace/Storage/MSCompressed/ControlData, die LZX-Reset-Tabelle, /#SYSTEM, /#STRINGS und die übrigen. So funktioniert der Container, und hineinsehen zu können ist gelegentlich genau das, was man braucht.
Nicht wiederherstellbare Einträge werden benannt
Lassen sich die Bytes eines Eintrags nicht erzeugen, wird er nicht ins ZIP geschrieben. Er erscheint in einer Fehlerliste mit der konkreten Meldung.
Der Grund für diese Strenge: Der LZX-Decoder dieser Seite wurde nach der Spezifikation [MS-PATCH] und nach lzxd.c aus libmspack geschrieben, und während sein Bitstromleser, das Huffman-Decoding, die unkomprimierten Blöcke und der x86-Filter mit Unit-Tests abgedeckt sind, ist das Decoding der Verbatim- und Aligned-Blöcke nie gegen die Ausgabe von Microsofts eigenem Kompressor gelaufen — es gab kein Offline-Korpus zum Prüfen.
Eine abgeschnittene oder verrauschte Datei in einem Auszug ist schlimmer als eine fehlende, weil das Problem erst viel später auffiele, wenn die Datei woanders liegt und die CHM verschwunden ist. Ein Fehlschlag wird also als Fehlschlag gemeldet.
Ebenfalls angezeigt
Titel der Hilfedatei, ihr Standardthema, die Namen der Inhalts- und Indexdateien, der Compiler, der sie erzeugt hat, und welche Kompression die Inhaltsabschnitte verwenden. Zum Lesen statt Extrahieren nehmen Sie den CHM-Betrachter.
Datenschutz
Die Hilfedatei wird im Browser geöffnet und entpackt. Nichts wird hochgeladen.
Tiny Online Tools






