Adobe FrameMaker file

application/octet-stream

Safe

Magic Bytes

Offset: 0
3C 67 70 78 20 76 65 72 73 69 6F 6E 3D 22 31 2E 31

The Adobe FrameMaker file format is a proprietary document publishing system developed by Adobe Inc. designed specifically for handling large, complex technical documents. It is widely used by technical writers to author structured content, manage extensive cross-references, and generate multi-format publications. Originally created by Frame Technology Corporation, the format remains a standard in enterprise technical communication for supporting both unstructured and XML-based authoring workflows.

Extension

.fm

MIME Type

application/octet-stream

Byte Offset

0

Risk Level

Safe

Validation Code

How to validate .fm files in Python

Python
def is_fm(file_path: str) -> bool:
    """Check if file is a valid FM by magic bytes."""
    signature = bytes([0x3C, 0x67, 0x70, 0x78, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 0x22, 0x31, 0x2E, 0x31])
    with open(file_path, "rb") as f:
        return f.read(17) == signature

How to validate .fm files in Node.js

Node.js
function isFM(buffer: Buffer): boolean {
  const signature = Buffer.from([0x3C, 0x67, 0x70, 0x78, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 0x22, 0x31, 0x2E, 0x31]);
  return buffer.subarray(0, 17).equals(signature);
}
Go
func IsFM(data []byte) bool {
    signature := []byte{0x3C, 0x67, 0x70, 0x78, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 0x22, 0x31, 0x2E, 0x31}
    if len(data) < 17 {
        return false
    }
    return bytes.Equal(data[:17], signature)
}

API Endpoint

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

Related Formats