Microsoft Compiled HTML Help File
application/octet-stream
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.
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