{"success":true,"data":{"ext":"fm","name":"Adobe FrameMaker file","description":"Adobe FrameMaker (.fm) is a document file format developed and maintained by Adobe Systems for creating structured, long-form technical publications. It is used for manuals, books, policy documents, and other complex text workflows that require consistent formatting and cross-references. The format is associated with desktop publishing and technical documentation; files from untrusted sources should still be opened with standard caution.","mime":["application/vnd.framemaker"],"risk_level":"Safe","signatures":[{"hex":"3C 4D 61 6B 65 72 46 69 6C 65 20","offset":0,"sources":[{"name":"Gary Kessler","url":"https://www.garykessler.net/library/file_sigs_GCK_latest.html"}]}],"related":["mif"],"usage":{"python":"def is_fm(file_path: str) -> bool:\n    \"\"\"Check if file is a valid FM by magic bytes.\"\"\"\n    signature = bytes([0x3C, 0x4D, 0x61, 0x6B, 0x65, 0x72, 0x46, 0x69, 0x6C, 0x65, 0x20])\n    with open(file_path, \"rb\") as f:\n        return f.read(11) == signature","node":"function isFM(buffer: Buffer): boolean {\n  const signature = Buffer.from([0x3C, 0x4D, 0x61, 0x6B, 0x65, 0x72, 0x46, 0x69, 0x6C, 0x65, 0x20]);\n  return buffer.subarray(0, 11).equals(signature);\n}","go":"func IsFM(data []byte) bool {\n    signature := []byte{0x3C, 0x4D, 0x61, 0x6B, 0x65, 0x72, 0x46, 0x69, 0x6C, 0x65, 0x20}\n    if len(data) < 11 {\n        return false\n    }\n    return bytes.Equal(data[:11], signature)\n}"}}}