Skip to content

Instantly share code, notes, and snippets.

@qti3e
Last active April 13, 2024 15:50
Show Gist options
  • Star 82 You must be signed in to star a gist
  • Fork 20 You must be signed in to fork a gist
  • Save qti3e/6341245314bf3513abb080677cd1c93b to your computer and use it in GitHub Desktop.
Save qti3e/6341245314bf3513abb080677cd1c93b to your computer and use it in GitHub Desktop.
List of file signatures and mime types based on file extensions

About

This file was generated automatically based on this two sources:

  1. /etc/nginx/mime.types
  2. http://www.garykessler.net/library/file_sigs.html

File format

This is a JSON object by following structure:

[string ext] : {
  signs: [sign]
  mime: string
}

A sign is a string in this format (without any space):

[int o],[hex s]

where o is x byte offset (Commonly zero)

Example Sign

MP4:

[4 byte offset]
66 74 79 70 69 73 6F 6D	

becomes:

4,6674797069736F6D
{
"123": {
"signs": [
"0,00001A00051004"
],
"mime": "application/vnd.lotus-1-2-3"
},
"cpl": {
"signs": [
"0,4D5A",
"0,DCDC"
],
"mime": "application/cpl+xml"
},
"epub": {
"signs": [
"0,504B03040A000200"
],
"mime": "application/epub+zip"
},
"ttf": {
"signs": [
"0,0001000000"
],
"mime": "application/font-sfnt"
},
"gz": {
"signs": [
"0,1F8B08"
],
"mime": "application/gzip"
},
"tgz": {
"signs": [
"0,1F8B08"
],
"mime": "application/gzip"
},
"hqx": {
"signs": [
"0,28546869732066696C65206D75737420626520636F6E76657274656420776974682042696E48657820"
],
"mime": "application/mac-binhex40"
},
"doc": {
"signs": [
"0,0D444F43",
"0,CF11E0A1B11AE100",
"0,D0CF11E0A1B11AE1",
"0,DBA52D00",
"512,ECA5C100"
],
"mime": "application/msword"
},
"mxf": {
"signs": [
"0,060E2B34020501010D0102010102",
"0,3C435472616E7354696D656C696E653E"
],
"mime": "application/mxf"
},
"lha": {
"signs": [
"2,2D6C68"
],
"mime": "application/octet-stream"
},
"lzh": {
"signs": [
"2,2D6C68"
],
"mime": "application/octet-stream"
},
"exe": {
"signs": [
"0,4D5A"
],
"mime": "application/octet-stream"
},
"class": {
"signs": [
"0,CAFEBABE"
],
"mime": "application/octet-stream"
},
"dll": {
"signs": [
"0,4D5A"
],
"mime": "application/octet-stream"
},
"img": {
"signs": [
"0,000100005374616E64617264204A6574204442",
"0,504943540008",
"0,514649FB",
"0,53434D49",
"0,7E742C015070024D52010000000800000001000031000000310000004301FF0001000800010000007e742c01",
"0,EB3C902A"
],
"mime": "application/octet-stream"
},
"iso": {
"signs": [
"32769,4344303031",
"34817,4344303031",
"36865,4344303031"
],
"mime": "application/octet-stream"
},
"ogx": {
"signs": [
"0,4F67675300020000000000000000"
],
"mime": "application/ogg"
},
"oxps": {
"signs": [
"0,504B0304"
],
"mime": "application/oxps"
},
"pdf": {
"signs": [
"0,25504446"
],
"mime": "application/pdf"
},
"p10": {
"signs": [
"0,64000000"
],
"mime": "application/pkcs10"
},
"pls": {
"signs": [
"0,5B706C61796C6973745D"
],
"mime": "application/pls+xml"
},
"eps": {
"signs": [
"0,252150532D41646F62652D332E3020455053462D332030",
"0,C5D0D3C6"
],
"mime": "application/postscript"
},
"ai": {
"signs": [
"0,25504446"
],
"mime": "application/postscript"
},
"rtf": {
"signs": [
"0,7B5C72746631"
],
"mime": "application/rtf"
},
"tsa": {
"signs": [
"0,47"
],
"mime": "application/tamp-sequence-adjust"
},
"msf": {
"signs": [
"0,2F2F203C212D2D203C6D64623A6D6F726B3A7A"
],
"mime": "application/vnd.epson.msf"
},
"fdf": {
"signs": [
"0,25504446"
],
"mime": "application/vnd.fdf"
},
"fm": {
"signs": [
"0,3C4D616B657246696C6520"
],
"mime": "application/vnd.framemaker"
},
"kmz": {
"signs": [
"0,504B0304"
],
"mime": "application/vnd.google-earth.kmz"
},
"tpl": {
"signs": [
"0,0020AF30",
"0,6D7346696C7465724C697374"
],
"mime": "application/vnd.groove-tool-template"
},
"kwd": {
"signs": [
"0,504B0304"
],
"mime": "application/vnd.kde.kword"
},
"wk4": {
"signs": [
"0,00001A000210040000000000"
],
"mime": "application/vnd.lotus-1-2-3"
},
"wk3": {
"signs": [
"0,00001A000010040000000000"
],
"mime": "application/vnd.lotus-1-2-3"
},
"wk1": {
"signs": [
"0,0000020006040600080000000000"
],
"mime": "application/vnd.lotus-1-2-3"
},
"apr": {
"signs": [
"0,D0CF11E0A1B11AE1"
],
"mime": "application/vnd.lotus-approach"
},
"nsf": {
"signs": [
"0,1A0000040000",
"0,4E45534D1A01"
],
"mime": "application/vnd.lotus-notes"
},
"ntf": {
"signs": [
"0,1A0000",
"0,30314F52444E414E43452053555256455920202020202020",
"0,4E49544630"
],
"mime": "application/vnd.lotus-notes"
},
"org": {
"signs": [
"0,414F4C564D313030"
],
"mime": "application/vnd.lotus-organizer"
},
"lwp": {
"signs": [
"0,576F726450726F"
],
"mime": "application/vnd.lotus-wordpro"
},
"sam": {
"signs": [
"0,5B50686F6E655D"
],
"mime": "application/vnd.lotus-wordpro"
},
"mif": {
"signs": [
"0,3C4D616B657246696C6520",
"0,56657273696F6E20"
],
"mime": "application/vnd.mif"
},
"xul": {
"signs": [
"0,3C3F786D6C2076657273696F6E3D22312E30223F3E"
],
"mime": "application/vnd.mozilla.xul+xml"
},
"asf": {
"signs": [
"0,3026B2758E66CF11A6D900AA0062CE6C"
],
"mime": "application/vnd.ms-asf"
},
"cab": {
"signs": [
"0,49536328",
"0,4D534346"
],
"mime": "application/vnd.ms-cab-compressed"
},
"xls": {
"signs": [
"512,0908100000060500",
"0,D0CF11E0A1B11AE1",
"512,FDFFFFFF04",
"512,FDFFFFFF20000000"
],
"mime": "application/vnd.ms-excel"
},
"xla": {
"signs": [
"0,D0CF11E0A1B11AE1"
],
"mime": "application/vnd.ms-excel"
},
"chm": {
"signs": [
"0,49545346"
],
"mime": "application/vnd.ms-htmlhelp"
},
"ppt": {
"signs": [
"512,006E1EF0",
"512,0F00E803",
"512,A0461DF0",
"0,D0CF11E0A1B11AE1",
"512,FDFFFFFF04"
],
"mime": "application/vnd.ms-powerpoint"
},
"pps": {
"signs": [
"0,D0CF11E0A1B11AE1"
],
"mime": "application/vnd.ms-powerpoint"
},
"wks": {
"signs": [
"0,0E574B53",
"0,FF000200040405540200"
],
"mime": "application/vnd.ms-works"
},
"wpl": {
"signs": [
"84,4D6963726F736F66742057696E646F7773204D6564696120506C61796572202D2D20"
],
"mime": "application/vnd.ms-wpl"
},
"xps": {
"signs": [
"0,504B0304"
],
"mime": "application/vnd.ms-xpsdocument"
},
"cif": {
"signs": [
"2,5B56657273696F6E"
],
"mime": "application/vnd.multiad.creator.cif"
},
"odp": {
"signs": [
"0,504B0304"
],
"mime": "application/vnd.oasis.opendocument.presentation"
},
"odt": {
"signs": [
"0,504B0304"
],
"mime": "application/vnd.oasis.opendocument.text"
},
"ott": {
"signs": [
"0,504B0304"
],
"mime": "application/vnd.oasis.opendocument.text-template"
},
"pptx": {
"signs": [
"0,504B030414000600"
],
"mime": "application/vnd.openxmlformats-officedocument.presentationml.presentation"
},
"xlsx": {
"signs": [
"0,504B030414000600"
],
"mime": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
},
"docx": {
"signs": [
"0,504B030414000600"
],
"mime": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
},
"prc": {
"signs": [
"0,424F4F4B4D4F4249",
"60,74424D504B6E5772"
],
"mime": "application/vnd.palm"
},
"pdb": {
"signs": [
"11,000000000000000000000000000000000000000000000000",
"0,4D2D5720506F636B6574204469637469",
"0,4D6963726F736F667420432F432B2B20",
"0,736D5F",
"0,737A657A",
"0,ACED0005737200126267626C69747A2E"
],
"mime": "application/vnd.palm"
},
"qxd": {
"signs": [
"0,00004D4D585052"
],
"mime": "application/vnd.Quark.QuarkXPress"
},
"rar": {
"signs": [
"0,526172211A0700",
"0,526172211A070100"
],
"mime": "application/vnd.rar"
},
"mmf": {
"signs": [
"0,4D4D4D440000"
],
"mime": "application/vnd.smaf"
},
"cap": {
"signs": [
"0,52545353",
"0,58435000"
],
"mime": "application/vnd.tcpdump.pcap"
},
"dmp": {
"signs": [
"0,4D444D5093A7",
"0,5041474544553634",
"0,5041474544554D50"
],
"mime": "application/vnd.tcpdump.pcap"
},
"wpd": {
"signs": [
"0,FF575043"
],
"mime": "application/vnd.wordperfect"
},
"xar": {
"signs": [
"0,78617221"
],
"mime": "application/vnd.xara"
},
"spf": {
"signs": [
"0,5350464900"
],
"mime": "application/vnd.yamaha.smaf-phrase"
},
"dtd": {
"signs": [
"0,0764743264647464"
],
"mime": "application/xml-dtd"
},
"zip": {
"signs": [
"0,504B0304",
"0,504B0304",
"0,504B030414000100630000000000",
"0,504B0708",
"30,504B4C495445",
"526,504B537058",
"29152,57696E5A6970"
],
"mime": "application/zip"
},
"amr": {
"signs": [
"0,2321414D52"
],
"mime": "audio/AMR"
},
"au": {
"signs": [
"0,2E736E64",
"0,646E732E"
],
"mime": "audio/basic"
},
"m4a": {
"signs": [
"0,00000020667479704D344120",
"4,667479704D344120"
],
"mime": "audio/mp4"
},
"mp3": {
"signs": [
"0,494433",
"0,FFFB"
],
"mime": "audio/mpeg"
},
"oga": {
"signs": [
"0,4F67675300020000000000000000"
],
"mime": "audio/ogg"
},
"ogg": {
"signs": [
"0,4F67675300020000000000000000"
],
"mime": "audio/ogg"
},
"qcp": {
"signs": [
"0,52494646"
],
"mime": "audio/qcelp"
},
"koz": {
"signs": [
"0,49443303000000"
],
"mime": "audio/vnd.audikoz"
},
"bmp": {
"signs": [
"0,424D"
],
"mime": "image/bmp"
},
"dib": {
"signs": [
"0,424D"
],
"mime": "image/bmp"
},
"emf": {
"signs": [
"0,01000000"
],
"mime": "image/emf"
},
"fits": {
"signs": [
"0,53494D504C4520203D202020202020202020202020202020202020202054"
],
"mime": "image/fits"
},
"gif": {
"signs": [
"0,474946383961"
],
"mime": "image/gif"
},
"jp2": {
"signs": [
"0,0000000C6A5020200D0A"
],
"mime": "image/jp2"
},
"jpg": {
"signs": [
"0,FFD8",
"0,FFD8",
"0,FFD8",
"0,FFD8"
],
"mime": "image/jpeg"
},
"jpeg": {
"signs": [
"0,FFD8",
"0,FFD8"
],
"mime": "image/jpeg"
},
"jpe": {
"signs": [
"0,FFD8",
"0,FFD8"
],
"mime": "image/jpeg"
},
"jfif": {
"signs": [
"0,FFD8"
],
"mime": "image/jpeg"
},
"png": {
"signs": [
"0,89504E470D0A1A0A"
],
"mime": "image/png"
},
"tiff": {
"signs": [
"0,492049",
"0,49492A00",
"0,4D4D002A",
"0,4D4D002B"
],
"mime": "image/tiff"
},
"tif": {
"signs": [
"0,492049",
"0,49492A00",
"0,4D4D002A",
"0,4D4D002B"
],
"mime": "image/tiff"
},
"psd": {
"signs": [
"0,38425053"
],
"mime": "image/vnd.adobe.photoshop"
},
"dwg": {
"signs": [
"0,41433130"
],
"mime": "image/vnd.dwg"
},
"ico": {
"signs": [
"0,00000100"
],
"mime": "image/vnd.microsoft.icon"
},
"mdi": {
"signs": [
"0,4550"
],
"mime": "image/vnd.ms-modi"
},
"hdr": {
"signs": [
"0,233F52414449414E43450A",
"0,49536328"
],
"mime": "image/vnd.radiance"
},
"pcx": {
"signs": [
"512,0908100000060500"
],
"mime": "image/vnd.zbrush.pcx"
},
"wmf": {
"signs": [
"0,010009000003",
"0,D7CDC69A"
],
"mime": "image/wmf"
},
"eml": {
"signs": [
"0,46726F6D3A20",
"0,52657475726E2D506174683A20",
"0,582D"
],
"mime": "message/rfc822"
},
"art": {
"signs": [
"0,4A47040E"
],
"mime": "message/rfc822"
},
"manifest": {
"signs": [
"0,3C3F786D6C2076657273696F6E3D"
],
"mime": "text/cache-manifest"
},
"log": {
"signs": [
"0,2A2A2A2020496E7374616C6C6174696F6E205374617274656420"
],
"mime": "text/plain"
},
"tsv": {
"signs": [
"0,47"
],
"mime": "text/tab-separated-values"
},
"vcf": {
"signs": [
"0,424547494E3A56434152440D0A"
],
"mime": "text/vcard"
},
"dms": {
"signs": [
"0,444D5321"
],
"mime": "text/vnd.DMClientScript"
},
"dot": {
"signs": [
"0,D0CF11E0A1B11AE1"
],
"mime": "text/vnd.graphviz"
},
"ts": {
"signs": [
"0,47"
],
"mime": "text/vnd.trolltech.linguist"
},
"3gp": {
"signs": [
"0,0000001466747970336770",
"0,0000002066747970336770"
],
"mime": "video/3gpp"
},
"3g2": {
"signs": [
"0,0000001466747970336770",
"0,0000002066747970336770"
],
"mime": "video/3gpp2"
},
"mp4": {
"signs": [
"0,000000146674797069736F6D",
"0,000000186674797033677035",
"0,0000001C667479704D534E56012900464D534E566D703432",
"4,6674797033677035",
"4,667479704D534E56",
"4,6674797069736F6D"
],
"mime": "video/mp4"
},
"m4v": {
"signs": [
"0,00000018667479706D703432",
"0,00000020667479704D345620",
"4,667479706D703432"
],
"mime": "video/mp4"
},
"mpeg": {
"signs": [
"0,00000100",
"0,FFD8"
],
"mime": "video/mpeg"
},
"mpg": {
"signs": [
"0,00000100",
"0,000001BA",
"0,FFD8"
],
"mime": "video/mpeg"
},
"ogv": {
"signs": [
"0,4F67675300020000000000000000"
],
"mime": "video/ogg"
},
"mov": {
"signs": [
"0,00",
"0,000000146674797071742020",
"4,6674797071742020",
"4,6D6F6F76"
],
"mime": "video/quicktime"
},
"cpt": {
"signs": [
"0,4350543746494C45",
"0,43505446494C45"
],
"mime": "application/mac-compactpro"
},
"sxc": {
"signs": [
"0,504B0304",
"0,504B0304"
],
"mime": "application/vnd.sun.xml.calc"
},
"sxd": {
"signs": [
"0,504B0304"
],
"mime": "application/vnd.sun.xml.draw"
},
"sxi": {
"signs": [
"0,504B0304"
],
"mime": "application/vnd.sun.xml.impress"
},
"sxw": {
"signs": [
"0,504B0304"
],
"mime": "application/vnd.sun.xml.writer"
},
"bz2": {
"signs": [
"0,425A68"
],
"mime": "application/x-bzip2"
},
"vcd": {
"signs": [
"0,454E5452595643440200000102001858"
],
"mime": "application/x-cdlink"
},
"csh": {
"signs": [
"0,6375736800000002000000"
],
"mime": "application/x-csh"
},
"spl": {
"signs": [
"0,00000100"
],
"mime": "application/x-futuresplash"
},
"jar": {
"signs": [
"0,4A4152435300",
"0,504B0304",
"0,504B0304140008000800",
"0,5F27A889"
],
"mime": "application/x-java-archive"
},
"rpm": {
"signs": [
"0,EDABEEDB"
],
"mime": "application/x-rpm"
},
"swf": {
"signs": [
"0,435753",
"0,465753",
"0,5A5753"
],
"mime": "application/x-shockwave-flash"
},
"sit": {
"signs": [
"0,5349542100",
"0,5374756666497420286329313939372D"
],
"mime": "application/x-stuffit"
},
"tar": {
"signs": [
"257,7573746172"
],
"mime": "application/x-tar"
},
"xpi": {
"signs": [
"0,504B0304"
],
"mime": "application/x-xpinstall"
},
"xz": {
"signs": [
"0,FD377A585A00"
],
"mime": "application/x-xz"
},
"mid": {
"signs": [
"0,4D546864"
],
"mime": "audio/midi"
},
"midi": {
"signs": [
"0,4D546864"
],
"mime": "audio/midi"
},
"aiff": {
"signs": [
"0,464F524D00"
],
"mime": "audio/x-aiff"
},
"flac": {
"signs": [
"0,664C614300000022"
],
"mime": "audio/x-flac"
},
"wma": {
"signs": [
"0,3026B2758E66CF11A6D900AA0062CE6C"
],
"mime": "audio/x-ms-wma"
},
"ram": {
"signs": [
"0,727473703A2F2F"
],
"mime": "audio/x-pn-realaudio"
},
"rm": {
"signs": [
"0,2E524D46"
],
"mime": "audio/x-pn-realaudio"
},
"ra": {
"signs": [
"0,2E524D460000001200",
"0,2E7261FD00"
],
"mime": "audio/x-realaudio"
},
"wav": {
"signs": [
"0,52494646"
],
"mime": "audio/x-wav"
},
"webp": {
"signs": [
"0,52494646"
],
"mime": "image/webp"
},
"pgm": {
"signs": [
"0,50350A"
],
"mime": "image/x-portable-graymap"
},
"rgb": {
"signs": [
"0,01DA01010003"
],
"mime": "image/x-rgb"
},
"webm": {
"signs": [
"0,1A45DFA3"
],
"mime": "video/webm"
},
"flv": {
"signs": [
"0,00000020667479704D345620",
"0,464C5601"
],
"mime": "video/x-flv"
},
"mkv": {
"signs": [
"0,1A45DFA3"
],
"mime": "video/x-matroska"
},
"asx": {
"signs": [
"0,3C"
],
"mime": "video/x-ms-asf"
},
"wmv": {
"signs": [
"0,3026B2758E66CF11A6D900AA0062CE6C"
],
"mime": "video/x-ms-wmv"
},
"avi": {
"signs": [
"0,52494646"
],
"mime": "video/x-msvideo"
}
}
@marcusandresus
Copy link

On some sources, offsets are given in hex. In this case, offsets are in decimal. Maybe a comment making it explicit would be a improvement for this useful resource.

@liux-pro
Copy link

liux-pro commented Feb 2, 2022

Hi @qti3e
I found there are some repeats in signs , such as jpg, where 0,FFD8 repeat 4 times.

    "jpg": {
        "signs": [
            "0,FFD8",
            "0,FFD8",
            "0,FFD8",
            "0,FFD8"
        ],
        "mime": "image/jpeg"
    },

@Benzolio
Copy link

Hey! This is cool! I was about to start putting something like this together based on https://en.wikipedia.org/wiki/List_of_file_signatures. I did notice there are some more signatures on the wikipedia article that are not on https://www.garykessler.net/library/file_sigs.html
For example, two alternative signatures for mp3 of FF F2 and FF F3, so I think "mp3" could be extended to:

    "mp3": {
        "signs": [
            "0,494433",
            "0,FFFB",
            "0,FFF2",
            "0,FFF3"
        ],
        "mime": "audio/mpeg"
    },

Thanks for cross-referencing these!

@jgladen
Copy link

jgladen commented Jul 5, 2022

for eml I have also found: "Return-path: " in addition to "Return-Path: "

   "eml": {
        "signs": [
            "0,46726F6D3A20",
            "0,52657475726E2D506174683A20",
            "0,52657475726E2D706174683A20",
            "0,582D"
        ],
        "mime": "message/rfc822"
    },

@nvzavi
Copy link

nvzavi commented Sep 22, 2022

Thanks. This is really cool. I am also using this in my project now. I will credit you in my code and readme.md - link to this gist. Thanks again

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment