Microsoft Compiled HTML Help File

application/octet-stream

Safe

Magic Bytes

Offset: 0
49 6E 6E 6F 20 53 65 74 75 70 20 55 6E 69 6E 73 74 61 6C 6C 20 4C 6F 67 20 28 62 29

Microsoft Compiled HTML Help Index (CHI) is a legacy documentation format developed by Microsoft for organizing and indexing large volumes of technical data. It functions as an external search index for primary help containers, facilitating faster keyword retrieval and cross-referencing within complex software documentation suites and reference manuals. This format contains only structural data and poses no inherent security risk, though it has been largely superseded by modern, web-based documentation standards.

Extension

.chi

MIME Type

application/octet-stream

Byte Offset

0

Risk Level

Safe

Validation Code

How to validate .chi files in Python

Python
def is_chi(file_path: str) -> bool:
    """Check if file is a valid CHI by magic bytes."""
    signature = bytes([0x49, 0x6E, 0x6E, 0x6F, 0x20, 0x53, 0x65, 0x74, 0x75, 0x70, 0x20, 0x55, 0x6E, 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6C, 0x6C, 0x20, 0x4C, 0x6F, 0x67, 0x20, 0x28, 0x62, 0x29])
    with open(file_path, "rb") as f:
        return f.read(28) == signature

How to validate .chi files in Node.js

Node.js
function isCHI(buffer: Buffer): boolean {
  const signature = Buffer.from([0x49, 0x6E, 0x6E, 0x6F, 0x20, 0x53, 0x65, 0x74, 0x75, 0x70, 0x20, 0x55, 0x6E, 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6C, 0x6C, 0x20, 0x4C, 0x6F, 0x67, 0x20, 0x28, 0x62, 0x29]);
  return buffer.subarray(0, 28).equals(signature);
}
Go
func IsCHI(data []byte) bool {
    signature := []byte{0x49, 0x6E, 0x6E, 0x6F, 0x20, 0x53, 0x65, 0x74, 0x75, 0x70, 0x20, 0x55, 0x6E, 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6C, 0x6C, 0x20, 0x4C, 0x6F, 0x67, 0x20, 0x28, 0x62, 0x29}
    if len(data) < 28 {
        return false
    }
    return bytes.Equal(data[:28], signature)
}

API Endpoint

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

Related Formats