Imported Upstream version 1.2.2-1
[packages/binwalk.git] / magic / archives
1 # ----------------------------Archive Formats--------------------------------------
2
3 # POSIX tar archives
4 0       string          ustar\000               POSIX tar archive{offset-adjust:-257}
5 0       string          ustar\040\040\000       POSIX tar archive (GNU){offset-adjust:-257}
6
7 # JAR archiver (.j), this is the successor to ARJ, not Java's JAR (which is essentially ZIP)
8 0       string  \x1aJar\x1b JAR (ARJ Software, Inc.) archive data{offset-adjust:-14}
9 0       string  JARCS JAR (ARJ Software, Inc.) archive data
10
11 # ZIP compression (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu)
12 0       string          PK\003\004      Zip
13 >6      leshort         &0x01           encrypted
14 >0      byte            x               archive data,
15 >4      byte            0x00            v0.0
16 >4      byte            0x09            at least v0.9 to extract,
17 >4      byte            0x0a            at least v1.0 to extract,
18 >4      byte            0x0b            at least v1.1 to extract,
19 >0x161  string          WINZIP          WinZIP self-extracting,
20 >4      byte            0x14
21 >>30    ubelong         !0x6d696d65     at least v2.0 to extract,
22 >18     lelong          !0
23 >>18    lelong          <0              invalid
24 >>18    lelong          x               compressed size: %d,
25 >>18    lelong          x               {jump-to-offset:%d}
26 >22     lelong          !0
27 >>22    lelong          <0              invalid
28 >>22    lelong          x               uncompressed size: %d,{extract-delay:End of Zip archive}
29 >30     string          x               {file-name:{raw-replace}}name: {raw-replace}
30 >26     leshort         x               {raw-string-length:%d}
31 >30     string          x               {raw-string:%s
32 >61     string          x               \b%s
33 >92     string          x               \b%s
34 >123    string          x               \b%s
35 >154    string          x               \b%s}
36
37 # ZIP footer
38 0       string          PK\x05\x06      End of Zip archive
39 #>10    leshort         x               number of records: %d,
40 #>12    leshort         x               size of central directory: %d
41 #>20    leshort         x               {offset-adjust:22+%d}
42 >20     leshort         >0
43 >>20    leshort         x               \b, comment: {raw-replace}
44 >>20    leshort         x               {raw-string-length:%d}
45 >>22    string          x               {raw-string:%s}
46
47 # ARJ archiver (jason@jarthur.Claremont.EDU)
48 0       leshort         0xea60          ARJ archive data,
49 >2      leshort         x               header size: %d,
50 >5      byte            <1              invalid
51 >5      byte            >16             invalid
52 >5      byte            x               version %d,
53 >6      byte            <1              invalid
54 >6      byte            >16             invalid
55 >6      byte            x               minimum version to extract: %d,
56 >8      byte            <0              invalid flags,
57 >8      byte            &0x04           multi-volume,
58 >8      byte            &0x10           slash-switched,
59 >8      byte            &0x20           backup,
60 >9      byte            <0              invalid compression method,
61 >9      byte            >4              invalid compression method,
62 >9      byte            0               compression method: stored,
63 >9      byte            1               compression method: compressed most,
64 >9      byte            2               compression method: compressed,
65 >9      byte            3               compression method: compressed faster,
66 >9      byte            4               compression method: compressed fastest,
67 >10     byte            <0              invalid file type
68 >10     byte            >4              invalid file type
69 >10     byte            0               file type: binary,
70 >10     byte            1               file type: 7-bit text,
71 >10     byte            2               file type: comment header,
72 >10     byte            3               file type: directory,
73 >10     byte            4               file type: volume label,
74 >34     byte            !0
75 >>34    string          x               {file-name:%s}
76 >>34    string          x               original name: "%s",
77 >0xC    ledate          x               original file date: %s,
78 >0x10   lelong          <0              invalid
79 >0x10   lelong          x               compressed file size: %d,
80 >0x14   lelong          <0              invalid
81 >0x14   lelong          x               uncompressed file size: %d,
82 >7      byte            0               os: MS-DOS 
83 >7      byte            1               os: PRIMOS
84 >7      byte            2               os: Unix
85 >7      byte            3               os: Amiga
86 >7      byte            4               os: Macintosh
87 >7      byte            5               os: OS/2
88 >7      byte            6               os: Apple ][ GS
89 >7      byte            7               os: Atari ST
90 >7      byte            8               os: NeXT
91 >7      byte            9               os: VAX/VMS
92 >7      byte            >9              invalid os
93 >7      byte            <0              invalid os
94
95 # RAR archiver (Greg Roelofs, newt@uchicago.edu)
96 0       string          Rar!            RAR archive data
97
98 # HPACK archiver (Peter Gutmann, pgut1@cs.aukuni.ac.nz)
99 0       string          HPAK            HPACK archive data
100
101 # JAM Archive volume format, by Dmitry.Kohmanyuk@UA.net
102 0       string          \351,\001JAM    JAM archive
103
104 # LHARC/LHA archiver (Greg Roelofs, newt@uchicago.edu)
105 0       string          -lzs-           LHa 2.x? archive data [lzs] [NSRL|LHA2]{offset-adjust:-2}
106 0       string          -lh\40-         LHa 2.x? archive data [lh ] [NSRL|LHA2]{offset-adjust:-2}
107 0       string          -lhd-           LHa 2.x? archive data [lhd] [NSRL|LHA2]{offset-adjust:-2}
108 0       string          -lh2-           LHa 2.x? archive data [lh2] [NSRL|LHA2]{offset-adjust:-2}
109 0       string          -lh3-           LHa 2.x? archive data [lh3] [NSRL|LHA2]{offset-adjust:-2}
110 0       string          -lh4-           LHa (2.x) archive data [lh4] [NSRL|LHA2]{offset-adjust:-2}
111 0       string          -lh5-           LHa (2.x) archive data [lh5] [NSRL|LHA2]{offset-adjust:-2}
112 0       string          -lh6-           LHa (2.x) archive data [lh6] [NSRL|LHA2]{offset-adjust:-2}
113 0       string          -lh7-           LHa (2.x) archive data [lh7] [NSRL|LHA2]{offset-adjust:-2}
114
115
116 # cpio archives
117 #
118 # The SVR4 "cpio(4)" hints that there are additional formats, but they
119 # are defined as "short"s; I think all the new formats are
120 # character-header formats and thus are strings, not numbers.
121 #0       string          070707          ASCII cpio archive (pre-SVR4 or odc)
122
123 0       string          070701          ASCII cpio archive (SVR4 with no CRC),
124 >110    byte            0               invalid
125 #>110   byte            !0x2F
126 #>>110  string          !TRAILER!!!     invalid
127 >110    string          x               file name: "%s"
128 >54     string          x               file size: "0x%.8s"
129 >54     string          x               {jump-to-offset:0x%.8s+112}
130
131 0       string          070702          ASCII cpio archive (SVR4 with CRC)
132 >110    byte            0               invalid
133 #>110   byte            !0x2F
134 #>>110  string          !TRAILER!!!     invalid
135 >110    string          x               file name: "%s"
136 >54     string          x               file size: "0x%.8s"
137 >54     string          x               {jump-to-offset:0x%.8s+112}
138
139
140 # HP Printer Job Language
141 # The header found on Win95 HP plot files is the "Silliest Thing possible" 
142 # (TM)
143 # Every driver puts the language at some random position, with random case
144 # (LANGUAGE and Language)
145 # For example the LaserJet 5L driver puts the "PJL ENTER LANGUAGE" in line 10
146 # From: Uwe Bonnes <bon@elektron.ikp.physik.th-darmstadt.de>
147
148 0       string          \033%-12345X@PJL        HP Printer Job Language data
149 >&0     string          >\0                     "%s"
150 >>&0    string          >\0                     "%s"
151 >>>&0   string          >\0                     "%s"
152 >>>>&0  string          >\0                     "%s"
153
154 #------------------------------------------------------------------------------
155 #
156 # RPM: file(1) magic for Red Hat Packages   Erik Troan (ewt@redhat.com)
157 #
158 0       belong          0xedabeedb      RPM
159 >4      byte            x               v%d
160 >6      beshort         0               bin
161 >6      beshort         1               src
162 >8      beshort         1               i386
163 >8      beshort         2               Alpha
164 >8      beshort         3               Sparc
165 >8      beshort         4               MIPS
166 >8      beshort         5               PowerPC
167 >8      beshort         6               68000
168 >8      beshort         7               SGI
169 >8      beshort         8               RS6000
170 >8      beshort         9               IA64
171 >8      beshort         10              Sparc64
172 >8      beshort         11              MIPSel
173 >8      beshort         12              ARM
174 >10     string          x               "%s"
175
176 # IBM AIX Backup File Format header and entry signatures
177 0       lelong  0xea6b0009      BFF volume header,
178 >4      leshort x               checksum: 0x%.4X,
179 >6      leshort <0              invalid
180 >6      leshort 0               invalid
181 >6      leshort x               volume number: %d,
182 >8      ledate  x               current date: %s,
183 >12     ledate  x               starting date: %s,
184 >20     string  x               disk name: "%s",
185 >36     string  x               file system name: "%s",
186 >52     string  x               user name: "%s"
187
188 0       leshort 0xea6b          BFF volume entry,{offset-adjust:-2}
189 >22     lelong  <0              invalid
190 >22     lelong  0               directory,
191 >22     lelong  >0
192 >>22    lelong  x               file size: %d,
193 >>54    lelong  <0              invalid
194 >>54    lelong  0               invalid
195 >>54    lelong  x               compressed size: %d,
196 >58     lelong  !0              invalid
197 >62     byte    0               invalid
198 >62     byte    !0x2e
199 >>62    byte    !0x2f           invalid
200 >62     string  x               file name: "%s
201 >92     string  x               \b%s"
202
203 0       leshort 0xea6c          BFF volume entry, compressed,{offset-adjust:-2}
204 >22     lelong  <0              invalid
205 >22     lelong  0               directory,
206 >22     lelong  >0
207 >>22    lelong  x               file size: %d,
208 >>54    lelong  <0              invalid
209 >>54    lelong  0               invalid
210 >>54    lelong  x               compressed size: %d,
211 >58     lelong  !0              invalid
212 >62     byte    0               invalid
213 >62     byte    !0x2e
214 >>62    byte    !0x2f           invalid
215 >62     string  x               file name: "%s
216 >92     string  x               \b%s"
217
218 0       leshort 0xea6d          BFF volume entry, AIXv3,{offset-adjust:-2}
219 >22     lelong  <0              invalid
220 >22     lelong  0               directory,
221 >22     lelong  >0
222 >>22    lelong  x               file size: %d,
223 >>54    lelong  <0              invalid
224 >>54    lelong  0               invalid
225 >>54    lelong  x               compressed size: %d,
226 >58     lelong  !0              invalid
227 >62     byte    0               invalid
228 >62     byte    !0x2e
229 >>62    byte    !0x2f           invalid
230 >62     string  x               file name: "%s
231 >92     string  x               \b%s"
232