Skip to content

Microsoft Compiled HTML Help File (.chm)

.chm file signature | application/vnd.ms-htmlhelp

Microsoft Compiled HTML Help (CHM) is a proprietary help file format developed by Microsoft for packaging hypertext documentation in a single compressed file. It is used by software applications, online manuals, and technical reference systems, and is typically opened with the Windows HTML Help viewer or compatible third-party tools. The format is legacy in many environments, and CHM files from untrusted sources should be handled cautiously because they can contain active content and embedded links.

Safe

Magic Bytes

Offset 0
49 54 53 46

Sources: Apache Tika, Gary Kessler, Neil Harvey FileSignatures

All Known Signatures

3 signature variants are documented for .chm files across multiple sources.

Hex Signature Offset Sources
49 54 53 46 0 Apache Tika, Gary Kessler, Neil Harvey FileSignatures
49 54 53 46 03 00 00 00 0 Wikipedia
60 00 00 00 0 Wikipedia

Extension

.chm

MIME Type

application/vnd.ms-htmlhelp

Byte Offset

0

Risk Level

Safe

Validation Code

How to validate .chm files in Python

Python
def is_chm(file_path: str) -> bool:
    """Check if file is a valid CHM by magic bytes."""
    signature = bytes([0x49, 0x54, 0x53, 0x46])
    with open(file_path, "rb") as f:
        return f.read(4) == signature

How to validate .chm files in Node.js

Node.js
function isCHM(buffer: Buffer): boolean {
  const signature = Buffer.from([0x49, 0x54, 0x53, 0x46]);
  return buffer.subarray(0, 4).equals(signature);
}

How to validate .chm files in Go

Go
func IsCHM(data []byte) bool {
    signature := []byte{0x49, 0x54, 0x53, 0x46}
    if len(data) < 4 {
        return false
    }
    return bytes.Equal(data[:4], signature)
}

API Endpoint

GET /api/v1/chm
curl https://filesignature.org/api/v1/chm

See the full API documentation for all endpoints and parameters.

Related Formats

Frequently Asked Questions

What is a .chm file?

A .chm file is a Microsoft Compiled HTML Help File file. Microsoft Compiled HTML Help (CHM) is a proprietary help file format developed by Microsoft for packaging hypertext documentation in a single compressed file. It is used by software applications, online manuals, and technical reference systems, and is typically opened with the Windows HTML Help viewer or compatible third-party tools. The format is legacy in many environments, and CHM files from untrusted sources should be handled cautiously because they can contain active content and embedded links.

What are the magic bytes for .chm files?

The magic bytes for Microsoft Compiled HTML Help File files are 49 54 53 46 at byte offset 0. These bytes uniquely identify the file format regardless of the file extension.

How do I validate a .chm file?

To validate a .chm file, read the first bytes of the file and compare them against the known magic bytes (49 54 53 46) at offset 0. This is more reliable than checking the file extension alone, as extensions can be renamed.

What is the MIME type for .chm files?

The primary MIME type for .chm files is application/vnd.ms-htmlhelp.

Is it safe to open .chm files?

Microsoft Compiled HTML Help File (.chm) files are generally safe to open. They are classified as low risk because they primarily contain data rather than executable code. However, always ensure files come from a trusted source.