UDEB
application/x-debian-package
Magic Bytes
Offset: 0
21 3C 61 72 63 68 3E 0A 64 65 62 69 61 6E 2D 62 69 6E 61 72 79
A Micro Debian (UDEB) package is a specialized archive format maintained by the Debian Project for distributing components of the Debian installer. These files are primarily utilized during the initial system installation process to provide modular drivers, tools, and scripts within the Debian installer environment. While sharing the same structural architecture as standard DEB files, they are stripped of documentation to minimize size and are not recommended for manual installation on a running system.
Validation Code
How to validate .udeb files in Python
Python
def is_udeb(file_path: str) -> bool:
"""Check if file is a valid UDEB by magic bytes."""
signature = bytes([0x21, 0x3C, 0x61, 0x72, 0x63, 0x68, 0x3E, 0x0A, 0x64, 0x65, 0x62, 0x69, 0x61, 0x6E, 0x2D, 0x62, 0x69, 0x6E, 0x61, 0x72, 0x79])
with open(file_path, "rb") as f:
return f.read(21) == signature
How to validate .udeb files in Node.js
Node.js
function isUDEB(buffer: Buffer): boolean {
const signature = Buffer.from([0x21, 0x3C, 0x61, 0x72, 0x63, 0x68, 0x3E, 0x0A, 0x64, 0x65, 0x62, 0x69, 0x61, 0x6E, 0x2D, 0x62, 0x69, 0x6E, 0x61, 0x72, 0x79]);
return buffer.subarray(0, 21).equals(signature);
}
Go
func IsUDEB(data []byte) bool {
signature := []byte{0x21, 0x3C, 0x61, 0x72, 0x63, 0x68, 0x3E, 0x0A, 0x64, 0x65, 0x62, 0x69, 0x61, 0x6E, 0x2D, 0x62, 0x69, 0x6E, 0x61, 0x72, 0x79}
if len(data) < 21 {
return false
}
return bytes.Equal(data[:21], signature)
}
API Endpoint
GET
/api/v1/udeb
curl https://filesignature.org/api/v1/udeb