DIST
application/octet-stream
Magic Bytes
Offset: 10
23 20 54 68 69 73 20 69 73 20 61 20 73 68 65 6C 6C 20 61 72 63 68 69 76 65
The DIST format represents a Unix Shell Archive (shar) utility developed within the Unix ecosystem to package multiple files into a single self-extracting script. It was primarily used to distribute source code and software packages across early text-based networks like Usenet and email. Although now a legacy format replaced by modern compression tools, these files require execution within a Bourne shell, which poses inherent security risks if the source is untrusted.
Validation Code
How to validate .dist files in Python
Python
def is_dist(file_path: str) -> bool:
"""
Check if file is a valid DIST by magic bytes.
Signature offset: 10 bytes
"""
signature = bytes([0x23, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x73, 0x68, 0x65, 0x6C, 0x6C, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65])
with open(file_path, "rb") as f:
f.seek(10)
return f.read(25) == signature
How to validate .dist files in Node.js
Node.js
function isDIST(buffer: Buffer): boolean {
// Signature offset: 10 bytes
const signature = Buffer.from([0x23, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x73, 0x68, 0x65, 0x6C, 0x6C, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65]);
if (buffer.length < 35) return false;
return buffer.subarray(10, 35).equals(signature);
}
Go
func IsDIST(data []byte) bool {
// Signature offset: 10 bytes
signature := []byte{0x23, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x73, 0x68, 0x65, 0x6C, 0x6C, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65}
if len(data) < 35 {
return false
}
return bytes.Equal(data[10:35], signature)
}
API Endpoint
GET
/api/v1/dist
curl https://filesignature.org/api/v1/dist