What is the CHM file format?
.chm is a Microsoft Compiled HTML Help file - a Windows Help module used to store help documents for applications and system functions. .chm documents are built from HTML source files, the same format used for websites, and compiled into a single self-contained binary archive. On Windows, .chm files open natively with hh.exe (HTML Help), which ships with every version of Windows since Windows 98. Dedicated third-party readers such as xCHM and SumatraPDF are also available.
The format uses Microsoft's proprietary ITSF (Info-Tech Storage Format) container, identifiable by the four-byte file signature ITSF at offset 0. Inside the container, HTML topics, images, CSS and index tables are compressed using LZX compression, which is why the file appears as a single compact archive rather than a folder of loose files. The predecessor to .chm was the older .HLP WinHelp format, which it replaced in 1997.
Help files contain software documentation. A typical .chm file is divided into sections organized in a tree-like structure, covering application usage, features, and frequently asked questions. Because .chm renders through Internet Explorer's MSHTML engine, files copied from a network share or downloaded from the internet may display blank pages - a Windows security restriction known as the "mark of the web" block. Unblocking the file via its Properties dialog restores normal display.
.chm files are portable and self-contained: a single file carries all topics, images and navigation. Although the format is considered legacy - Microsoft's newer systems use .hxs or online documentation delivery - .chm files still open correctly on current Windows without additional software.
Security & safety
RISK: MEDIUMCHM is an HTML container that can embed scripts and shortcut/HTML-Help commands, and it has a real history of malware abuse (malicious CHMs that launch executables, used in phishing campaigns) and old viewer vulnerabilities. Only open CHM files from trusted sources. Windows deliberately blocks content in CHMs opened from the Internet/network (every page shows blank) via the 'mark of the web' - if you trust the file, right-click > Properties > Unblock, or move it to a local drive. Treat unexpected .chm attachments like any other executable attachment.
Format details
in a nutshellPrograms that open CHM files
Technical details
deep spec| Container format | ITSF (Info-Tech Storage Format) - Microsoft's proprietary compound storage with an internal ITSP directory that indexes all virtual files inside the archive |
| Magic bytes | 4-byte ASCII signature ITSF (hex 49 54 53 46) at offset 0, immediately followed by a little-endian DWORD version field (typically 03 00 00 00 for HTML Help 1.x) |
| Byte order | Little-endian throughout all header and directory structures |
| Compression | LZX compression applied to the HTML content section; the same LZX variant is also used in Microsoft Cabinet (.cab) files |
| MIME type | application/vnd.ms-htmlhelp (registered); application/x-chm and application/octet-stream also in widespread use |
| Internal structure | ITSF header + ITSP directory listing virtual files; content section contains HTML topics, images, CSS, #SYSTEM/#STRINGS metadata blocks and #TOPICS/#URLTBL URL index tables, all LZX-compressed |
| Windows viewer | hh.exe (HTML Help executable) using the ActiveX control hhctrl.ocx, present on all Windows versions from Windows 98 onward; no separate installation required |
| Rendering engine | Internet Explorer MSHTML; HTML and CSS inside a .chm are rendered as IE would, which can produce display quirks in very old files that relied on IE-specific behaviour |
| Encryption | Content is LZX-compressed but not encrypted; the archive can be unpacked directly with tools such as 7-Zip or the hh.exe -decompile command |
| Integrity checking | No built-in CRC or digital signature; a corrupt .chm simply fails to decompress or displays no content, with no error detail from the viewer |
| Typical file size | Ranges from tens of KB to approximately 100 MB; most software help files fall in the 1-10 MB range |
| Platform support | Native on Windows via hh.exe; third-party viewers on Linux (xCHM, KchmViewer, Calibre) and macOS (CHMOX, xCHM, Calibre) |
| Network security restriction | Files opened from a network share or downloaded from the internet are blocked by Windows Mark of the Web policy, causing blank topic pages; unblocking via file Properties dialog restores full access |
| ITSF header layout | Version 3 header of 56 bytes containing a creation timestamp, a Windows LCID (language code) and two GUIDs that identify the content and transform sections |
| Released | 1997 (HTML Help 1.0, with Windows 98) |
| Latest version | HTML Help 1.4 (ships with Windows; runtime hhctrl.ocx, no new versions since early 2000s) |
| Specification | www.nongnu.org |
CHM conversions
Community Q&A
asked by usersNo questions yet - be the first to ask about CHM files.