Wat is het CHM-bestandsformaat?
.chm is een Microsoft Compiled HTML Help-bestand - een Windows Help-module die wordt gebruikt om helpdocumenten voor applicaties en systeemfuncties op te slaan. .chm-documenten zijn opgebouwd uit HTML-bronbestanden, hetzelfde formaat dat voor websites wordt gebruikt, en gecompileerd in een enkel op zichzelf staand binair archief. Op Windows worden .chm-bestanden standaard geopend met hh.exe (HTML Help), dat sinds Windows 98 bij elke versie van Windows wordt geleverd. Er zijn ook speciale readers van derden beschikbaar, zoals xCHM en SumatraPDF.
Het formaat maakt gebruik van Microsofts eigen ITSF-container (Info-Tech Storage Format), herkenbaar aan de vier-byte bestandssignatuur ITSF op offset 0. Binnen de container worden HTML-onderwerpen, afbeeldingen, CSS en indextabellen gecomprimeerd met LZX-compressie, waardoor het bestand verschijnt als een enkel compact archief in plaats van een map met losse bestanden. De voorganger van .chm was het oudere .HLP WinHelp-formaat, dat het in 1997 verving.
Helpbestanden bevatten softwaredocumentatie. Een typisch .chm-bestand is verdeeld in secties die zijn georganiseerd in een boomstructuur, die het gebruik van de applicatie, functies en veelgestelde vragen behandelen. Omdat .chm wordt gerenderd via de MSHTML-engine van Internet Explorer, kunnen bestanden die vanaf een netwerkshare zijn gekopieerd of van internet zijn gedownload, lege pagina's weergeven - een Windows-beveiligingsbeperking die bekend staat als de „mark of the web”-blokkering. Het deblokkeren van het bestand via het dialoogvenster Eigenschappen herstelt de normale weergave.
.chm-bestanden zijn draagbaar en op zichzelf staand: een enkel bestand bevat alle onderwerpen, afbeeldingen en navigatie. Hoewel het formaat als verouderd wordt beschouwd - de nieuwere systemen van Microsoft gebruiken .hxs of online documentatie - openen .chm-bestanden nog steeds correct op de huidige Windows-versies zonder extra software.
Beveiliging & veiligheid
RISICO: MEDIUMCHM is een HTML-container die scripts en snelkoppelingen/HTML-Help-commando's kan bevatten, en het heeft een geschiedenis van misbruik door malware (kwaadaardige CHM's die uitvoerbare bestanden starten, gebruikt in phishing-campagnes) en kwetsbaarheden in oude viewers. Open alleen CHM-bestanden van vertrouwde bronnen. Windows blokkeert opzettelijk inhoud in CHM's die vanaf internet/netwerk worden geopend (elke pagina is leeg) via de „mark of the web” - als u het bestand vertrouwt, klikt u met de rechtermuisknop > Eigenschappen > Blokkering opheffen, of verplaatst u het naar een lokale schijf. Behandel onverwachte .chm-bijlagen als elke andere uitvoerbare bijlage.
Formaatdetails
in een notendopProgramma's die CHM-bestanden openen
Technische details
diepe specificaties| Containerformaat | ITSF (Info-Tech Storage Format) - Microsofts eigen samengestelde opslag met een interne ITSP-directory die alle virtuele bestanden in het archief indexeert |
| Magic bytes | 4-byte ASCII-signatuur ITSF (hex 49 54 53 46) op offset 0, onmiddellijk gevolgd door een little-endian DWORD-versieveld (meestal 03 00 00 00 voor HTML Help 1.x) |
| Bytevolgorde | Little-endian in alle header- en directorystructuren |
| Compressie | LZX-compressie toegepast op de HTML-inhoudssectie; dezelfde LZX-variant wordt ook gebruikt in Microsoft Cabinet (.cab)-bestanden |
| MIME-type | application/vnd.ms-htmlhelp (geregistreerd); application/x-chm en application/octet-stream zijn ook wijdverbreid in gebruik |
| Interne structuur | ITSF-header + ITSP-directory met virtuele bestanden; inhoudssectie bevat HTML-onderwerpen, afbeeldingen, CSS, #SYSTEM/#STRINGS-metadatablokken en #TOPICS/#URLTBL URL-indextabellen, allemaal LZX-gecomprimeerd |
| Windows viewer | hh.exe (HTML Help executable) die gebruikmaakt van het ActiveX-besturingselement hhctrl.ocx, aanwezig op alle Windows-versies vanaf Windows 98; geen aparte installatie vereist |
| Rendering-engine | Internet Explorer MSHTML; HTML en CSS in een .chm worden gerenderd zoals IE dat zou doen, wat weergavefouten kan veroorzaken in zeer oude bestanden die vertrouwden op IE-specifiek gedrag |
| Versleuteling | Inhoud is LZX-gecomprimeerd maar niet versleuteld; het archief kan rechtstreeks worden uitgepakt met tools zoals 7-Zip of het commando hh.exe -decompile |
| Integriteitscontrole | Geen ingebouwde CRC of digitale handtekening; een beschadigde .chm kan simpelweg niet worden gedecomprimeerd of geeft geen inhoud weer, zonder foutdetails van de viewer |
| Typische bestandsgrootte | Varieert van tientallen KB tot ongeveer 100 MB; de meeste helpbestanden van software vallen in de range van 1-10 MB |
| Platformondersteuning | Native op Windows via hh.exe; viewers van derden op Linux (xCHM, KchmViewer, Calibre) en macOS (CHMOX, xCHM, Calibre) |
| Netwerkbeveiligingsbeperking | Bestanden die worden geopend vanaf een netwerkshare of gedownload van internet worden geblokkeerd door het Windows Mark of the Web-beleid, wat resulteert in lege pagina's; deblokkeren via het dialoogvenster Eigenschappen herstelt de volledige toegang |
| ITSF-headerlay-out | Versie 3-header van 56 bytes met een aanmaaktijdstempel, een Windows LCID (taalcode) and twee GUID's die de inhouds- en transformatiesecties identificeren |
| Uitgebracht | 1997 (HTML Help 1.0, with Windows 98) |
| Laatste versie | HTML Help 1.4 (ships with Windows; runtime hhctrl.ocx, no new versions since early 2000s) |
| Specificatie | www.nongnu.org |
CHM conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over CHM-bestanden.