magic.mime 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543
  1. # Magic data for KMimeMagic (originally for file(1) command)
  2. #
  3. # The format is 4-5 columns:
  4. # Column #1: byte number to begin checking from, ">" indicates continuation
  5. # Column #2: type of data to match
  6. # Column #3: contents of data to match
  7. # Column #4: MIME type of result
  8. # Column #5: MIME encoding of result (optional)
  9. #------------------------------------------------------------------------------
  10. # Localstuff: file(1) magic for locally observed files
  11. # Add any locally observed files here.
  12. #------------------------------------------------------------------------------
  13. # end local stuff
  14. #------------------------------------------------------------------------------
  15. #------------------------------------------------------------------------------
  16. # Java
  17. 0 short 0xcafe
  18. >2 short 0xbabe application/java
  19. #------------------------------------------------------------------------------
  20. # audio: file(1) magic for sound formats
  21. #
  22. # from Jan Nicolai Langfeldt <janl@ifi.uio.no>,
  23. #
  24. # Sun/NeXT audio data
  25. 0 string .snd
  26. >12 belong 1 audio/basic
  27. >12 belong 2 audio/basic
  28. >12 belong 3 audio/basic
  29. >12 belong 4 audio/basic
  30. >12 belong 5 audio/basic
  31. >12 belong 6 audio/basic
  32. >12 belong 7 audio/basic
  33. >12 belong 23 audio/x-adpcm
  34. # DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format
  35. # that uses little-endian encoding and has a different magic number
  36. # (0x0064732E in little-endian encoding).
  37. 0 lelong 0x0064732E
  38. >12 lelong 1 audio/x-dec-basic
  39. >12 lelong 2 audio/x-dec-basic
  40. >12 lelong 3 audio/x-dec-basic
  41. >12 lelong 4 audio/x-dec-basic
  42. >12 lelong 5 audio/x-dec-basic
  43. >12 lelong 6 audio/x-dec-basic
  44. >12 lelong 7 audio/x-dec-basic
  45. # compressed (G.721 ADPCM)
  46. >12 lelong 23 audio/x-dec-adpcm
  47. # Bytes 0-3 of AIFF, AIFF-C, & 8SVX audio files are "FORM"
  48. # AIFF audio data
  49. 8 string AIFF audio/x-aiff
  50. # AIFF-C audio data
  51. 8 string AIFC audio/x-aiff
  52. # IFF/8SVX audio data
  53. 8 string 8SVX audio/x-aiff
  54. # Creative Labs AUDIO stuff
  55. # Standard MIDI data
  56. 0 string MThd audio/unknown
  57. #>9 byte >0 (format %d)
  58. #>11 byte >1 using %d channels
  59. # Creative Music (CMF) data
  60. 0 string CTMF audio/unknown
  61. # SoundBlaster instrument data
  62. 0 string SBI audio/unknown
  63. # Creative Labs voice data
  64. 0 string Creative\ Voice\ File audio/unknown
  65. ## is this next line right? it came this way...
  66. #>19 byte 0x1A
  67. #>23 byte >0 - version %d
  68. #>22 byte >0 \b.%d
  69. # [GRR 950115: is this also Creative Labs? Guessing that first line
  70. # should be string instead of unknown-endian long...]
  71. #0 long 0x4e54524b MultiTrack sound data
  72. #0 string NTRK MultiTrack sound data
  73. #>4 long x - version %ld
  74. # Microsoft WAVE format (*.wav)
  75. # [GRR 950115: probably all of the shorts and longs should be leshort/lelong]
  76. # Microsoft RIFF
  77. 0 string RIFF audio/unknown
  78. # - WAVE format
  79. >8 string WAVE audio/x-wav
  80. >8 string AVI video/x-msvideo
  81. #
  82. 0 belong 0x2e7261fd application/x-realaudio
  83. # MPEG Layer 3 sound files
  84. # Modified the 11/20/97 at 15:59:04 by Christophe Prud'homme <christophe.prudhomme@asci.fr>
  85. 0 belong 0xfffb audio/x-mp3
  86. #MP3 with ID3 tag
  87. 0 string ID3 audio/x-mp3
  88. # Ogg/Vorbis
  89. 0 string OggS audio/x-ogg
  90. #------------------------------------------------------------------------------
  91. # c-lang: file(1) magic for C programs or various scripts
  92. #
  93. # XPM icons (Greg Roelofs, newt@uchicago.edu)
  94. # ideally should go into "images", but entries below would tag XPM as C source
  95. 0 string /*\ XPM image/x-xpm 7bit
  96. # 3DS (3d Studio files)
  97. 16 beshort 0x3d3d image/x-3ds
  98. # this first will upset you if you're a PL/1 shop... (are there any left?)
  99. # in which case rm it; ascmagic will catch real C programs
  100. # C or REXX program text
  101. #0 string /* text/x-c
  102. # C++ program text
  103. #0 string // text/x-c++
  104. #------------------------------------------------------------------------------
  105. # commands: file(1) magic for various shells and interpreters
  106. #
  107. #0 string :\ shell archive or commands for antique kernel text
  108. 0 string #!/bin/sh application/x-shellscript
  109. 0 string #!\ /bin/sh application/x-shellscript
  110. 0 string #!/bin/csh application/x-shellscript
  111. 0 string #!\ /bin/csh application/x-shellscript
  112. # korn shell magic, sent by George Wu, gwu@clyde.att.com
  113. 0 string #!/bin/ksh application/x-shellscript
  114. 0 string #!\ /bin/ksh application/x-shellscript
  115. 0 string #!/bin/tcsh application/x-shellscript
  116. 0 string #!\ /bin/tcsh application/x-shellscript
  117. 0 string #!/usr/local/tcsh application/x-shellscript
  118. 0 string #!\ /usr/local/tcsh application/x-shellscript
  119. 0 string #!/usr/local/bin/tcsh application/x-shellscript
  120. 0 string #!\ /usr/local/bin/tcsh application/x-shellscript
  121. # bash shell magic, from Peter Tobias (tobias@server.et-inf.fho-emden.de)
  122. 0 string #!/bin/bash application/x-shellscript
  123. 0 string #!\ /bin/bash application/x-shellscript
  124. 0 string #!/usr/local/bin/bash application/x-shellscript
  125. 0 string #!\ /usr/local/bin/bash application/x-shellscript
  126. #
  127. # zsh/ash/ae/nawk/gawk magic from cameron@cs.unsw.oz.au (Cameron Simpson)
  128. 0 string #!/usr/local/bin/zsh application/x-shellscript
  129. 0 string #!\ /usr/local/bin/zsh application/x-shellscript
  130. 0 string #!/usr/local/bin/ash application/x-shellscript
  131. 0 string #!\ /usr/local/bin/ash application/x-shellscript
  132. #0 string #!/usr/local/bin/ae Neil Brown's ae
  133. #0 string #!\ /usr/local/bin/ae Neil Brown's ae
  134. 0 string #!/bin/nawk application/x-nawk
  135. 0 string #!\ /bin/nawk application/x-nawk
  136. 0 string #!/usr/bin/nawk application/x-nawk
  137. 0 string #!\ /usr/bin/nawk application/x-nawk
  138. 0 string #!/usr/local/bin/nawk application/x-nawk
  139. 0 string #!\ /usr/local/bin/nawk application/x-nawk
  140. 0 string #!/bin/gawk application/x-gawk
  141. 0 string #!\ /bin/gawk application/x-gawk
  142. 0 string #!/usr/bin/gawk application/x-gawk
  143. 0 string #!\ /usr/bin/gawk application/x-gawk
  144. 0 string #!/usr/local/bin/gawk application/x-gawk
  145. 0 string #!\ /usr/local/bin/gawk application/x-gawk
  146. #
  147. 0 string #!/bin/awk application/x-awk
  148. 0 string #!\ /bin/awk application/x-awk
  149. 0 string #!/usr/bin/awk application/x-awk
  150. 0 string #!\ /usr/bin/awk application/x-awk
  151. 0 string BEGIN application/x-awk
  152. # For Larry Wall's perl language. The ``eval'' line recognizes an
  153. # outrageously clever hack for USG systems.
  154. # Keith Waclena <keith@cerberus.uchicago.edu>
  155. 0 string #!/bin/perl application/x-perl
  156. 0 string #!\ /bin/perl application/x-perl
  157. 0 string eval\ "exec\ /bin/perl application/x-perl
  158. 0 string #!/usr/bin/perl application/x-perl
  159. 0 string #!\ /usr/bin/perl application/x-perl
  160. 0 string eval\ "exec\ /usr/bin/perl application/x-perl
  161. 0 string #!/usr/local/bin/perl application/x-perl
  162. 0 string #!\ /usr/local/bin/perl application/x-perl
  163. 0 string eval\ "exec\ /usr/local/bin/perl application/x-perl
  164. #------------------------------------------------------------------------------
  165. # compress: file(1) magic for pure-compression formats (no archives)
  166. #
  167. # compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, whap, etc.
  168. #
  169. # Formats for various forms of compressed data
  170. # Formats for "compress" proper have been moved into "compress.c",
  171. # because it tries to uncompress it to figure out what's inside.
  172. # standard unix compress
  173. 0 string \037\235 application/x-compress
  174. # gzip (GNU zip, not to be confused with [Info-ZIP/PKWARE] zip archiver)
  175. 0 string \037\213 application/x-gzip
  176. 0 string PK\003\004 application/x-zip
  177. # According to gzip.h, this is the correct byte order for packed data.
  178. 0 string \037\036 application/octet-stream
  179. #
  180. # This magic number is byte-order-independent.
  181. #
  182. 0 short 017437 application/octet-stream
  183. # XXX - why *two* entries for "compacted data", one of which is
  184. # byte-order independent, and one of which is byte-order dependent?
  185. #
  186. # compacted data
  187. 0 short 0x1fff application/octet-stream
  188. 0 string \377\037 application/octet-stream
  189. # huf output
  190. 0 short 0145405 application/octet-stream
  191. # Squeeze and Crunch...
  192. # These numbers were gleaned from the Unix versions of the programs to
  193. # handle these formats. Note that I can only uncrunch, not crunch, and
  194. # I didn't have a crunched file handy, so the crunch number is untested.
  195. # Keith Waclena <keith@cerberus.uchicago.edu>
  196. #0 leshort 0x76FF squeezed data (CP/M, DOS)
  197. #0 leshort 0x76FE crunched data (CP/M, DOS)
  198. # Freeze
  199. #0 string \037\237 Frozen file 2.1
  200. #0 string \037\236 Frozen file 1.0 (or gzip 0.5)
  201. # lzh?
  202. #0 string \037\240 LZH compressed data
  203. 257 string ustar\0 application/x-tar posix
  204. 257 string ustar\040\040\0 application/x-tar gnu
  205. 0 short 070707 application/x-cpio
  206. 0 short 0143561 application/x-cpio swapped
  207. 0 string =<ar> application/x-archive
  208. 0 string !<arch> application/x-archive
  209. >8 string debian application/x-debian-package
  210. #------------------------------------------------------------------------------
  211. #
  212. # RPM: file(1) magic for Red Hat Packages Erik Troan (ewt@redhat.com)
  213. #
  214. 0 beshort 0xedab
  215. >2 beshort 0xeedb application/x-rpm
  216. 0 lelong&0x8080ffff 0x0000081a application/x-arc lzw
  217. 0 lelong&0x8080ffff 0x0000091a application/x-arc squashed
  218. 0 lelong&0x8080ffff 0x0000021a application/x-arc uncompressed
  219. 0 lelong&0x8080ffff 0x0000031a application/x-arc packed
  220. 0 lelong&0x8080ffff 0x0000041a application/x-arc squeezed
  221. 0 lelong&0x8080ffff 0x0000061a application/x-arc crunched
  222. 0 leshort 0xea60 application/octet-stream x-arj
  223. # LHARC/LHA archiver (Greg Roelofs, newt@uchicago.edu)
  224. 2 string -lh0- application/x-lharc lh0
  225. 2 string -lh1- application/x-lharc lh1
  226. 2 string -lz4- application/x-lharc lz4
  227. 2 string -lz5- application/x-lharc lz5
  228. # [never seen any but the last; -lh4- reported in comp.compression:]
  229. 2 string -lzs- application/x-lha lzs
  230. 2 string -lh\ - application/x-lha lh
  231. 2 string -lhd- application/x-lha lhd
  232. 2 string -lh2- application/x-lha lh2
  233. 2 string -lh3- application/x-lha lh3
  234. 2 string -lh4- application/x-lha lh4
  235. 2 string -lh5- application/x-lha lh5
  236. 2 string -lh6- application/x-lha lh6
  237. 2 string -lh7- application/x-lha lh7
  238. # Shell archives
  239. 10 string #\ This\ is\ a\ shell\ archive application/octet-stream x-shell
  240. #------------------------------------------------------------------------------
  241. # frame: file(1) magic for FrameMaker files
  242. #
  243. # This stuff came on a FrameMaker demo tape, most of which is
  244. # copyright, but this file is "published" as witness the following:
  245. #
  246. 0 string \<MakerFile application/x-frame
  247. 0 string \<MIFFile application/x-frame
  248. 0 string \<MakerDictionary application/x-frame
  249. 0 string \<MakerScreenFon application/x-frame
  250. 0 string \<MML application/x-frame
  251. 0 string \<Book application/x-frame
  252. 0 string \<Maker application/x-frame
  253. #------------------------------------------------------------------------------
  254. # html: file(1) magic for HTML (HyperText Markup Language) docs
  255. #
  256. # from Daniel Quinlan <quinlan@yggdrasil.com>
  257. #
  258. 0 string \<HEAD text/html
  259. 0 string \<head text/html
  260. 0 string \<TITLE text/html
  261. 0 string \<title text/html
  262. 0 string \<html text/html
  263. 0 string \<HTML text/html
  264. 0 string \<!-- text/html
  265. 0 string \<h1 text/html
  266. 0 string \<H1 text/html
  267. 0 string \<!doctype\ HTML text/html
  268. 0 string \<!DOCTYPE\ HTML text/html
  269. 0 string \<!doctype\ html text/html
  270. #------------------------------------------------------------------------------
  271. # images: file(1) magic for image formats (see also "c-lang" for XPM bitmaps)
  272. #
  273. # originally from jef@helios.ee.lbl.gov (Jef Poskanzer),
  274. # additions by janl@ifi.uio.no as well as others. Jan also suggested
  275. # merging several one- and two-line files into here.
  276. #
  277. # XXX - byte order for GIF and TIFF fields?
  278. # [GRR: TIFF allows both byte orders; GIF is probably little-endian]
  279. #
  280. # [GRR: what the hell is this doing in here?]
  281. #0 string xbtoa btoa'd file
  282. # PBMPLUS
  283. # PBM file
  284. 0 string P1 image/x-portable-bitmap 7bit
  285. # PGM file
  286. 0 string P2 image/x-portable-greymap 7bit
  287. # PPM file
  288. 0 string P3 image/x-portable-pixmap 7bit
  289. # PBM "rawbits" file
  290. 0 string P4 image/x-portable-bitmap
  291. # PGM "rawbits" file
  292. 0 string P5 image/x-portable-greymap
  293. # PPM "rawbits" file
  294. 0 string P6 image/x-portable-pixmap
  295. # NIFF (Navy Interchange File Format, a modification of TIFF)
  296. # [GRR: this *must* go before TIFF]
  297. 0 string IIN1 image/x-niff
  298. # TIFF and friends
  299. # TIFF file, big-endian
  300. 0 string MM image/tiff
  301. # TIFF file, little-endian
  302. 0 string II image/tiff
  303. # possible GIF replacements; none yet released!
  304. # (Greg Roelofs, newt@uchicago.edu)
  305. #
  306. # GRR 950115: this was mine ("Zip GIF"):
  307. # ZIF image (GIF+deflate alpha)
  308. 0 string GIF94z image/unknown
  309. #
  310. # GRR 950115: this is Jeremy Wohl's Free Graphics Format (better):
  311. # FGF image (GIF+deflate beta)
  312. 0 string FGF95a image/unknown
  313. #
  314. # GRR 950115: this is Thomas Boutell's Portable Bitmap Format proposal
  315. # (best; not yet implemented):
  316. # PBF image (deflate compression)
  317. 0 string PBF image/unknown
  318. # GIF
  319. 0 string GIF image/gif
  320. # JPEG images
  321. 0 beshort 0xffd8 image/jpeg
  322. # PC bitmaps (OS/2, Windoze BMP files) (Greg Roelofs, newt@uchicago.edu)
  323. 0 string BM image/bmp
  324. #>14 byte 12 (OS/2 1.x format)
  325. #>14 byte 64 (OS/2 2.x format)
  326. #>14 byte 40 (Windows 3.x format)
  327. #0 string IC icon
  328. #0 string PI pointer
  329. #0 string CI color icon
  330. #0 string CP color pointer
  331. #0 string BA bitmap array
  332. #------------------------------------------------------------------------------
  333. # lisp: file(1) magic for lisp programs
  334. #
  335. # various lisp types, from Daniel Quinlan (quinlan@yggdrasil.com)
  336. 0 string ;; text/plain 8bit
  337. # Emacs 18 - this is always correct, but not very magical.
  338. 0 string \012( application/x-elc
  339. # Emacs 19
  340. 0 string ;ELC\023\000\000\000 application/x-elc
  341. #------------------------------------------------------------------------------
  342. # mail.news: file(1) magic for mail and news
  343. #
  344. # There are tests to ascmagic.c to cope with mail and news.
  345. 0 string Relay-Version: message/rfc822 7bit
  346. 0 string #!\ rnews message/rfc822 7bit
  347. 0 string N#!\ rnews message/rfc822 7bit
  348. 0 string Forward\ to message/rfc822 7bit
  349. 0 string Pipe\ to message/rfc822 7bit
  350. 0 string Return-Path: message/rfc822 7bit
  351. 0 string Path: message/news 8bit
  352. 0 string Xref: message/news 8bit
  353. 0 string From: message/rfc822 7bit
  354. 0 string Article message/news 8bit
  355. #------------------------------------------------------------------------------
  356. # msword: file(1) magic for MS Word files
  357. #
  358. # Contributor claims:
  359. # Reversed-engineered MS Word magic numbers
  360. #
  361. 0 string \376\067\0\043 application/msword
  362. 0 string \320\317\021\340\241\261 application/msword
  363. 0 string \333\245-\0\0\0 application/msword
  364. #------------------------------------------------------------------------------
  365. # printer: file(1) magic for printer-formatted files
  366. #
  367. # PostScript
  368. 0 string %! application/postscript
  369. 0 string \004%! application/postscript
  370. # Acrobat
  371. # (due to clamen@cs.cmu.edu)
  372. 0 string %PDF- application/pdf
  373. #------------------------------------------------------------------------------
  374. # sc: file(1) magic for "sc" spreadsheet
  375. #
  376. 38 string Spreadsheet application/x-sc
  377. #------------------------------------------------------------------------------
  378. # tex: file(1) magic for TeX files
  379. #
  380. # XXX - needs byte-endian stuff (big-endian and little-endian DVI?)
  381. #
  382. # From <conklin@talisman.kaleida.com>
  383. # Although we may know the offset of certain text fields in TeX DVI
  384. # and font files, we can't use them reliably because they are not
  385. # zero terminated. [but we do anyway, christos]
  386. 0 string \367\002 application/x-dvi
  387. #0 string \367\203 TeX generic font data
  388. #0 string \367\131 TeX packed font data
  389. #0 string \367\312 TeX virtual font data
  390. #0 string This\ is\ TeX, TeX transcript text
  391. #0 string This\ is\ METAFONT, METAFONT transcript text
  392. # There is no way to detect TeX Font Metric (*.tfm) files without
  393. # breaking them apart and reading the data. The following patterns
  394. # match most *.tfm files generated by METAFONT or afm2tfm.
  395. 2 string \000\021 application/x-tex-tfm
  396. 2 string \000\022 application/x-tex-tfm
  397. #>34 string >\0 (%s)
  398. # Texinfo and GNU Info, from Daniel Quinlan (quinlan@yggdrasil.com)
  399. #0 string \\input\ texinfo Texinfo source text
  400. #0 string This\ is\ Info\ file GNU Info text
  401. # correct TeX magic for Linux (and maybe more)
  402. # from Peter Tobias (tobias@server.et-inf.fho-emden.de)
  403. #
  404. 0 leshort 0x02f7 application/x-dvi
  405. # RTF - Rich Text Format
  406. 0 string {\\rtf text/rtf
  407. #------------------------------------------------------------------------------
  408. # animation: file(1) magic for animation/movie formats
  409. #
  410. # animation formats, originally from vax@ccwf.cc.utexas.edu (VaX#n8)
  411. # MPEG file
  412. 0 belong 0x000001b3 video/mpeg
  413. 0 belong 0x000001ba video/mpeg
  414. # FLI animation format
  415. 0 leshort 0xAF11 video/fli
  416. # FLC animation format
  417. 0 leshort 0xAF12 video/flc
  418. # AVI
  419. >8 string AVI\ video/avi
  420. #
  421. # SGI and Apple formats
  422. #
  423. 0 string MOVI video/sgi
  424. 4 string moov video/quicktime moov
  425. 4 string mdat video/quicktime mdat
  426. # The contributor claims:
  427. # I couldn't find a real magic number for these, however, this
  428. # -appears- to work. Note that it might catch other files, too,
  429. # so BE CAREFUL!
  430. #
  431. # Note that title and author appear in the two 20-byte chunks
  432. # at decimal offsets 2 and 22, respectively, but they are XOR'ed with
  433. # 255 (hex FF)! DL format SUCKS BIG ROCKS.
  434. #
  435. # DL file version 1 , medium format (160x100, 4 images/screen)
  436. 0 byte 1 video/unknown
  437. 0 byte 2 video/unknown
  438. #
  439. # Databases
  440. #
  441. # GDBM magic numbers
  442. # Will be maintained as part of the GDBM distribution in the future.
  443. # <downsj@teeny.org>
  444. 0 belong 0x13579ace application/x-gdbm
  445. 0 lelong 0x13579ace application/x-gdbm
  446. 0 string GDBM application/x-gdbm
  447. #
  448. 0 belong 0x061561 application/x-dbm
  449. #
  450. # Executables
  451. #
  452. 0 string \177ELF
  453. >4 byte 0
  454. >4 byte 1
  455. >4 byte 2
  456. >5 byte 0
  457. >5 byte 1
  458. >>16 leshort 0
  459. >>16 leshort 1 application/x-object
  460. >>16 leshort 2 application/x-executable
  461. >>16 leshort 3 application/x-sharedlib
  462. >>16 leshort 4 application/x-coredump
  463. #
  464. # DOS
  465. 0 string MZ application/x-dosexec
  466. #
  467. # KDE
  468. 0 string [KDE\ Desktop\ Entry] application/x-kdelnk
  469. 0 string \#\ KDE\ Config\ File application/x-kdelnk
  470. # xmcd database file for kscd
  471. 0 string \#\ xmcd text/xmcd
  472. #------------------------------------------------------------------------------
  473. # pkgadd: file(1) magic for SysV R4 PKG Datastreams
  474. #
  475. 0 string #\ PaCkAgE\ DaTaStReAm application/x-svr4-package
  476. #PNG Image Format
  477. 0 string \x89PNG image/png