Fuzzy bitmap
application/octet-stream
Magic Bytes
Offset: 0
28 54 68 69 73 20 66 69 6C 65 20 6D 75 73 74 20 62 65 20 63 6F 6E 76 65 72 74 65 64 20 77 69 74 68 20 42 69 6E 48 65 78 20
Fuzzy Bitmap (FBM) is a legacy raster image format created by Michael L. Mauldin at Carnegie Mellon University for the Fuzzy Bitmap Manipulator software suite. This format provided a portable architecture for storing and manipulating digital images across diverse Unix-based systems during the late 1980s. Although historically significant for early computer vision research, FBM is now obsolete and represents a low security risk because it lacks support for active scripting.
Validation Code
How to validate .fbm files in Python
Python
def is_fbm(file_path: str) -> bool:
"""Check if file is a valid FBM by magic bytes."""
signature = bytes([0x28, 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6C, 0x65, 0x20, 0x6D, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6F, 0x6E, 0x76, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x42, 0x69, 0x6E, 0x48, 0x65, 0x78, 0x20])
with open(file_path, "rb") as f:
return f.read(41) == signature
How to validate .fbm files in Node.js
Node.js
function isFBM(buffer: Buffer): boolean {
const signature = Buffer.from([0x28, 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6C, 0x65, 0x20, 0x6D, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6F, 0x6E, 0x76, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x42, 0x69, 0x6E, 0x48, 0x65, 0x78, 0x20]);
return buffer.subarray(0, 41).equals(signature);
}
Go
func IsFBM(data []byte) bool {
signature := []byte{0x28, 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6C, 0x65, 0x20, 0x6D, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6F, 0x6E, 0x76, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x42, 0x69, 0x6E, 0x48, 0x65, 0x78, 0x20}
if len(data) < 41 {
return false
}
return bytes.Equal(data[:41], signature)
}
API Endpoint
GET
/api/v1/fbm
curl https://filesignature.org/api/v1/fbm