use file from dist
This commit is contained in:
parent
b4985fa4de
commit
82e0198241
|
@ -1,5 +0,0 @@
|
|||
# Magic
|
||||
# Magic data for file(1) command.
|
||||
# Machine-generated from src/cmd/file/magdir/*; edit there only!
|
||||
# Format is described in magic(files), where:
|
||||
# files is 5 on V7 and BSD, 4 on SV, and ?? in the SVID.
|
|
@ -1,35 +0,0 @@
|
|||
$NetBSD: LEGAL.NOTICE,v 1.8 1999/11/01 17:39:26 christos Exp $
|
||||
Id: LEGAL.NOTICE,v 1.11 1999/01/14 16:30:12 christos Exp
|
||||
Copyright (c) Ian F. Darwin 1986, 1987, 1989, 1990, 1991, 1992, 1994, 1995.
|
||||
Software written by Ian F. Darwin and others;
|
||||
maintained 1994-1999 Christos Zoulas.
|
||||
|
||||
This software is not subject to any export provision of the United States
|
||||
Department of Commerce, and may be exported to any country or planet.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice immediately at the beginning of the file, without modification,
|
||||
this list of conditions, and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. All advertising materials mentioning features or use of this software
|
||||
must display the following acknowledgement:
|
||||
This product includes software developed by Ian F. Darwin and others.
|
||||
4. The name of the author may not be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
|
@ -1,7 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# Localstuff: file(1) magic for locally observed files
|
||||
#
|
||||
# $Id: Localstuff,v 1.1.1.1 1998/09/19 18:07:40 christos Exp $
|
||||
# Add any locally observed files here. Remember:
|
||||
# text if readable, executable if runnable binary, data if unreadable.
|
|
@ -1,34 +0,0 @@
|
|||
$NetBSD: MAINT,v 1.5 2000/05/14 22:53:37 christos Exp $
|
||||
Id: MAINT,v 1.4 2000/04/11 02:43:51 christos Exp
|
||||
|
||||
Maintenance notes:
|
||||
|
||||
I am continuing to maintain the file command. I welcome your help,
|
||||
but to make my life easier I'd like to request the following:
|
||||
|
||||
- Don't change the version numbers!
|
||||
|
||||
If your changes are extensive, I will have to work hard to
|
||||
integrate them into my version. If you check it into SCCS locally,
|
||||
the version numbers will likely be kept. IF you check it into RCS
|
||||
or CVS locally, please use -k to keep the version numbers, and
|
||||
please use branch deltas (1.21.1, 1.21.2, ...). If you don't do
|
||||
this, I will likely be unable to use your changes; life's just too
|
||||
short.
|
||||
|
||||
- Do not distribute changed versions.
|
||||
|
||||
People trying to be helpful occasionally put up their hacked versions
|
||||
of the file command for FTP, then the "archie" server finds and publishes
|
||||
the hacked version, and people all over the world get copies of it.
|
||||
Within a day or two I am getting email from around the world
|
||||
asking me why "my" file command won't compile!!! Needless to say this
|
||||
detracts from the limited time I have available to work on the actual
|
||||
software. Therefore I ask you again to please NOT distribute
|
||||
your changed version.
|
||||
|
||||
|
||||
Thank you for your assistance and cooperation.
|
||||
|
||||
Christos Zoulas
|
||||
christos@astron.com
|
|
@ -1,53 +1,50 @@
|
|||
# $NetBSD: Makefile,v 1.40 2002/05/18 07:04:38 pooka Exp $
|
||||
# $NetBSD: Makefile,v 1.41 2003/03/26 00:05:04 pooka Exp $
|
||||
|
||||
.include <bsd.own.mk>
|
||||
|
||||
DIST= ${NETBSDSRCDIR}/dist/file
|
||||
.PATH: ${DIST}/src ${DIST}/doc
|
||||
|
||||
WFORMAT= 1
|
||||
MFILESDIR= /usr/share/misc
|
||||
MFILES= magic magic.mgc magic.mime magic.mime.mgc
|
||||
MFILES= magic magic.mgc ${DIST}/magic/magic.mime magic.mime.mgc
|
||||
MAGIC= ${MFILESDIR}/magic
|
||||
|
||||
.if ${MKSHARE} != "no"
|
||||
FILESDIR= ${MFILESDIR}
|
||||
FILES= ${MFILES}
|
||||
.endif
|
||||
|
||||
PROG= file
|
||||
SRCS= file.c apprentice.c fsmagic.c softmagic.c ascmagic.c is_tar.c \
|
||||
print.c compress.c readelf.c
|
||||
CPPFLAGS+= -DMAGIC='"${MAGIC}"' -DHAVE_CONFIG_H -I${.CURDIR}
|
||||
CPPFLAGS+= -DQUICK -DBUILTIN_ELF -DELFCORE
|
||||
LDADD+= -lz
|
||||
SRCS= file.c
|
||||
CPPFLAGS+= -DMAGIC='"${MAGIC}"' -DHAVE_CONFIG_H -DQUICK -DBUILTIN_ELF \
|
||||
-DELFCORE
|
||||
CPPFLAGS+= -I${.CURDIR}/../../lib/libmagic -I${DIST}
|
||||
LDADD+= -lz -lmagic
|
||||
MAN= file.1 magic.5
|
||||
|
||||
CLEANFILES+= mkmagic magic magic.mgc magic.mime magic.mime.mgc
|
||||
CLEANFILES+= magic magic.mgc magic.mime.mgc
|
||||
.if ${MKSHARE} != "no"
|
||||
realall: file magic magic.mgc magic.mime.mgc
|
||||
.endif
|
||||
|
||||
MAGDIRF:sh= echo ${.CURDIR}/magdir/[0-9a-z]*
|
||||
MAGFILES= ${.CURDIR}/Header \
|
||||
${.CURDIR}/Localstuff \
|
||||
${.CURDIR}/magdir/netbsd \
|
||||
MAGDIRF:sh= echo ${DIST}/magic/magdir/[0-9a-z]*
|
||||
MAGFILES= ${DIST}/magic/Header \
|
||||
${DIST}/magic/Localstuff \
|
||||
${DIST}/magic/magdir/netbsd \
|
||||
${MAGDIRF}
|
||||
|
||||
.if ${MKSHARE} != "no"
|
||||
magic: ${MAGFILES}
|
||||
magic: ${MAGFILES}
|
||||
cat ${MAGFILES} > ${.TARGET}
|
||||
|
||||
magic.mgc: mkmagic magic
|
||||
./mkmagic magic
|
||||
magic.mgc: magic
|
||||
${MKMAGIC} -C -m magic
|
||||
|
||||
magic.mime: magic.mime.in
|
||||
cp ${.CURDIR}/magic.mime.in ./magic.mime
|
||||
|
||||
magic.mime.mgc: mkmagic magic.mime
|
||||
./mkmagic ./magic.mime
|
||||
magic.mime.mgc:
|
||||
${MKMAGIC} -C -m ${DIST}/magic/magic.mime
|
||||
.else
|
||||
magic:
|
||||
.endif
|
||||
|
||||
mkmagic: apprentice.c print.c
|
||||
${HOST_LINK.c} -o mkmagic -DHAVE_CONFIG_H -DQUICK -DCOMPILE_ONLY \
|
||||
-I${.CURDIR} ${.CURDIR}/apprentice.c ${.CURDIR}/print.c
|
||||
|
||||
.include <bsd.prog.mk>
|
||||
|
|
|
@ -1,77 +0,0 @@
|
|||
$NetBSD: PORTING,v 1.5 1998/09/20 15:27:15 christos Exp $
|
||||
Portability of the new file(1) command.
|
||||
@(#) Id: PORTING,v 1.11 1993/09/23 21:47:23 christos Exp
|
||||
|
||||
Read this file only if the program doesn't compile on your system.
|
||||
|
||||
This release has been around UNIX; it has been compiled and tested
|
||||
in the following environments:
|
||||
|
||||
SunOS sqarc 4.1.1 8 sun4
|
||||
No problems.
|
||||
ULTRIX squint 4.2 0 RISC
|
||||
No problems.
|
||||
A/UX sqmac 3.0a9 SVR22 mc68020
|
||||
No problems.
|
||||
AIX sqibm 2 3 000XXXXXX100
|
||||
Had weird "make" problems making "magic" file automatically; just
|
||||
built it by hand. Your mileage may vary.
|
||||
SCO sqwang 3.2 2 i386
|
||||
Compiles fine; their weird make can't handle "[a-z]*" as a dependancy,
|
||||
so build magic by hand. Runs fine.
|
||||
sqzme sqzme 3.1.1 3 3B2
|
||||
The 3B2 SVR3 needed a few tweaks as well as COPTS = -Ilocalinc
|
||||
in order to compile.
|
||||
|
||||
This version, reluctanly, includes <stdlib.h>, which won't exist
|
||||
on older systems or those that aren't even close to the ANSI C
|
||||
standard. There is a null "stdlib.h", and some other bogus headers,
|
||||
in subdirectory "localinc"; if you get complaints about missing
|
||||
stdlib.h and others, uncomment the line with COPTS=-Ilocalinc
|
||||
in the Makefile, and try again.
|
||||
|
||||
You must have either <stdarg.h> or the older <varargs.h>, otherwise you'll
|
||||
have to butcher some routines in print.c.
|
||||
|
||||
Beyond that, I have tried to make a program that doesn't need any
|
||||
command-line defines (-D) to specify what version of UNIX is in use,
|
||||
by using the definitions available in the system #include
|
||||
files. For example, the lstat(2) call is normally found in
|
||||
4BSD systems, but might be grafted into some other variant
|
||||
of UNIX. If it's done right (ie., using the same definitions),
|
||||
my program will compile and work correctly. Look at the #ifdefs
|
||||
to see how it's done.
|
||||
|
||||
I've also tried to include source for all the non-portable library routines
|
||||
I used (getopt, str*). Non-portable here means `not in every
|
||||
reasonably standard UNIX out there: V7, System V, 4BSD'.
|
||||
These are in subdirectory "localsrc", and not used unless you
|
||||
need them; again, see the Makefile.
|
||||
|
||||
There is one area that just might cause problems. On System
|
||||
V, they moved the definition of major() and minor() out of
|
||||
<sys/types.h> into <sys/sysmacros.h>. Hence, if major isn't
|
||||
defined after including types.h, I automatically include sys/sysmacros.h.
|
||||
This will work for 99% of the systems out there. ONLY if you
|
||||
have a system in which neither types.h nor sysmacros.h defines
|
||||
`major' will this automatic include fail (I hope). On such
|
||||
systems, you will get a compilation error in trying to compile
|
||||
a warning message. Please do the following:
|
||||
|
||||
1) change the appropriate #include at the start of fsmagic.c
|
||||
and 2) let me know the name of the system, the release number,
|
||||
and the name of the header file that *does* include
|
||||
this "standard" definition.
|
||||
|
||||
If you are running the old Ritchie PDP-11 C compiler or
|
||||
some other compiler that doesn't know about `void', you will have
|
||||
to include `-Dvoid=int' in the variable COPTS in the Makefile.
|
||||
|
||||
Other than this, there should be no portability problems,
|
||||
but one never knows these days. Please let me know of any
|
||||
other problems you find porting to a UNIX system. I don't much
|
||||
care about non-UNIX systems but will collect widely-used magic
|
||||
numbers for them as well as for UNIX systems.
|
||||
|
||||
Mark Moraes and Christos Zoulas
|
||||
(address in README)
|
|
@ -1,98 +0,0 @@
|
|||
$NetBSD: README,v 1.10 2002/05/18 07:00:44 pooka Exp $
|
||||
** README for file(1) Command **
|
||||
@(#) Id: README,v 1.26 2002/05/16 18:45:56 christos Exp
|
||||
|
||||
This is Release 3.x of Ian Darwin's (copyright but distributable)
|
||||
file(1) command. This version is the standard "file" command for Linux,
|
||||
*BSD, and other systems. (See "patchlevel.h" for the exact release number).
|
||||
|
||||
UNIX is a trademark of UNIX System Laboratories.
|
||||
|
||||
The prime contributor to Release 3.8 was Guy Harris, who put in megachanges
|
||||
including byte-order independence.
|
||||
|
||||
The prime contributor to Release 3.0 was Christos Zoulas, who put
|
||||
in hundreds of lines of source code changes, including his own
|
||||
ANSIfication of the code (I liked my own ANSIfication better, but
|
||||
his (__P()) is the "Berkeley standard" way of doing it, and I wanted UCB
|
||||
to include the code...), his HP-like "indirection" (a feature of
|
||||
the HP file command, I think), and his mods that finally got the
|
||||
uncompress (-z) mode finished and working.
|
||||
|
||||
This release has compiled in numerous environments; see PORTING
|
||||
for a list and problems.
|
||||
|
||||
This fine freeware file(1) follows the USG (System V) model of the file
|
||||
command, rather than the Research (V7) version or the V7-derived 4.[23]
|
||||
Berkeley one. That is, the file /etc/magic contains much of the ritual
|
||||
information that is the source of this program's power. My version
|
||||
knows a little more magic (including tar archives) than System V; the
|
||||
/etc/magic parsing seems to be compatible with the (poorly documented)
|
||||
System V /etc/magic format (with one exception; see the man page).
|
||||
|
||||
In addition, the /etc/magic file is built from a subdirectory
|
||||
for easier(?) maintenance. I will act as a clearinghouse for
|
||||
magic numbers assigned to all sorts of data files that
|
||||
are in reasonable circulation. Send your magic numbers,
|
||||
in magic(4) format please, to the maintainer, Christos Zoulas.
|
||||
|
||||
LEGAL.NOTICE - read this first.
|
||||
README - read this second (you are currently reading this file).
|
||||
PORTING - read this only if the program won't compile.
|
||||
Makefile - read this next, adapt it as needed (particularly
|
||||
the location of the old existing file command and
|
||||
the man page layouts), type "make" to compile,
|
||||
"make try" to try it out against your old version.
|
||||
Expect some diffs, particularly since your original
|
||||
file(1) may not grok the embedded-space ("\ ") in
|
||||
the current magic file, or may even not use the
|
||||
magic file.
|
||||
apprentice.c - parses /etc/magic to learn magic
|
||||
ascmagic.c - third & last set of tests, based on hardwired assumptions.
|
||||
core - not included in distribution due to mailer limitations.
|
||||
debug.c - includes -c printout routine
|
||||
file.1 - man page for the command
|
||||
magic.4 - man page for the magic file, courtesy Guy Harris.
|
||||
Install as magic.4 on USG and magic.5 on V7 or Berkeley; cf Makefile.
|
||||
file.c - main program
|
||||
file.h - header file
|
||||
fsmagic.c - first set of tests the program runs, based on filesystem info
|
||||
is_tar.c, tar.h - knows about tarchives (courtesy John Gilmore).
|
||||
magdir - directory of /etc/magic pieces
|
||||
magdir/Makefile - ADJUST THIS FOR YOUR CONFIGURATION
|
||||
names.h - header file for ascmagic.c
|
||||
softmagic.c - 2nd set of tests, based on /etc/magic
|
||||
readelf.[ch] - Stand-alone elf parsing code.
|
||||
compress.c - on-the-fly decompression.
|
||||
print.c - print results, errors, warnings.
|
||||
|
||||
If your gzip sometimes fails to decompress things complaining about a short
|
||||
file, apply this patch [which is going to be in the next version of gzip]:
|
||||
*** - Tue Oct 29 02:06:35 1996
|
||||
--- util.c Sun Jul 21 21:51:38 1996
|
||||
*** 106,111 ****
|
||||
--- 108,114 ----
|
||||
|
||||
if (insize == 0) {
|
||||
if (eof_ok) return EOF;
|
||||
+ flush_window();
|
||||
read_error();
|
||||
}
|
||||
bytes_in += (ulg)insize;
|
||||
|
||||
E-mail: christos@astron.com
|
||||
|
||||
Phone: Do not even think of telephoning me about this program. Send cash first!
|
||||
|
||||
Parts of this software were developed at SoftQuad Inc., 56 Aberfoyle
|
||||
Cres, # 810, Toronto, Ontario CANADA M8X 2W4. Phone: 416-239-4801 or
|
||||
800-387-2777. Email: mail@sq.com. Call for information on SGML editing
|
||||
and browsing, Unix text processing, and customised products on Unix,
|
||||
DOS and Mac.
|
||||
|
||||
From: Kees Zeelenberg
|
||||
|
||||
An MS-Windows (Win32) port of File-3.36 is available from
|
||||
http://gnuwin32.sourceforge.net/
|
||||
File is an implementation of the Unix File(1) command.
|
||||
It knows the 'magic number' of several thousands of file types.
|
File diff suppressed because it is too large
Load Diff
|
@ -1,672 +0,0 @@
|
|||
/* $NetBSD: ascmagic.c,v 1.21 2002/12/22 16:31:21 is Exp $ */
|
||||
|
||||
/*
|
||||
* ASCII magic -- file types that we know based on keywords
|
||||
* that can appear anywhere in the file.
|
||||
*
|
||||
* Copyright (c) Ian F. Darwin, 1987.
|
||||
* Written by Ian F. Darwin.
|
||||
*
|
||||
* Extensively modified by Eric Fischer <enf@pobox.com> in July, 2000,
|
||||
* to handle character codes other than ASCII on a unified basis.
|
||||
*
|
||||
* Joerg Wunsch <joerg@freebsd.org> wrote the original support for 8-bit
|
||||
* international characters, now subsumed into this file.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This software is not subject to any license of the American Telephone
|
||||
* and Telegraph Company or of the Regents of the University of California.
|
||||
*
|
||||
* Permission is granted to anyone to use this software for any purpose on
|
||||
* any computer system, and to alter it and redistribute it freely, subject
|
||||
* to the following restrictions:
|
||||
*
|
||||
* 1. The author is not responsible for the consequences of use of this
|
||||
* software, no matter how awful, even if they arise from flaws in it.
|
||||
*
|
||||
* 2. The origin of this software must not be misrepresented, either by
|
||||
* explicit claim or by omission. Since few users ever read sources,
|
||||
* credits must appear in the documentation.
|
||||
*
|
||||
* 3. Altered versions must be plainly marked as such, and must not be
|
||||
* misrepresented as being the original software. Since few users
|
||||
* ever read sources, credits must appear in the documentation.
|
||||
*
|
||||
* 4. This notice may not be removed or altered.
|
||||
*/
|
||||
|
||||
#include "file.h"
|
||||
#include <string.h>
|
||||
#include <memory.h>
|
||||
#include <ctype.h>
|
||||
#include <stdlib.h>
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#include "names.h"
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
FILE_RCSID("@(#)Id: ascmagic.c,v 1.32 2002/07/03 18:26:37 christos Exp ")
|
||||
#else
|
||||
__RCSID("$NetBSD: ascmagic.c,v 1.21 2002/12/22 16:31:21 is Exp $");
|
||||
#endif
|
||||
#endif /* lint */
|
||||
|
||||
typedef unsigned long unichar;
|
||||
|
||||
#define MAXLINELEN 300 /* longest sane line length */
|
||||
#define ISSPC(x) ((x) == ' ' || (x) == '\t' || (x) == '\r' || (x) == '\n' \
|
||||
|| (x) == 0x85 || (x) == '\f')
|
||||
|
||||
static int looks_ascii(const unsigned char *, int, unichar *, int *);
|
||||
static int looks_utf8(const unsigned char *, int, unichar *, int *);
|
||||
static int looks_unicode(const unsigned char *, int, unichar *, int *);
|
||||
static int looks_latin1(const unsigned char *, int, unichar *, int *);
|
||||
static int looks_extended(const unsigned char *, int, unichar *, int *);
|
||||
static void from_ebcdic(const unsigned char *, int, unsigned char *);
|
||||
static int ascmatch(const unsigned char *, const unichar *, int);
|
||||
|
||||
/* int nbytes: size actually read */
|
||||
int
|
||||
ascmagic(unsigned char *buf, int nbytes)
|
||||
{
|
||||
int i;
|
||||
char nbuf[HOWMANY+1]; /* one extra for terminating '\0' */
|
||||
unichar ubuf[HOWMANY+1]; /* one extra for terminating '\0' */
|
||||
int ulen;
|
||||
struct names *p;
|
||||
|
||||
char *code = NULL;
|
||||
char *code_mime = NULL;
|
||||
char *type = NULL;
|
||||
char *subtype = NULL;
|
||||
char *subtype_mime = NULL;
|
||||
|
||||
int has_escapes = 0;
|
||||
int has_backspace = 0;
|
||||
|
||||
int n_crlf = 0;
|
||||
int n_lf = 0;
|
||||
int n_cr = 0;
|
||||
int n_nel = 0;
|
||||
|
||||
int last_line_end = -1;
|
||||
int has_long_lines = 0;
|
||||
|
||||
/*
|
||||
* Do the tar test first, because if the first file in the tar
|
||||
* archive starts with a dot, we can confuse it with an nroff file.
|
||||
*/
|
||||
switch (is_tar(buf, nbytes)) {
|
||||
case 1:
|
||||
ckfputs(iflag ? "application/x-tar" : "tar archive", stdout);
|
||||
return 1;
|
||||
case 2:
|
||||
ckfputs(iflag ? "application/x-tar, POSIX"
|
||||
: "POSIX tar archive", stdout);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Undo the NUL-termination kindly provided by process()
|
||||
* but leave at least one byte to look at
|
||||
*/
|
||||
|
||||
while (nbytes > 1 && buf[nbytes - 1] == '\0')
|
||||
nbytes--;
|
||||
|
||||
/*
|
||||
* Then try to determine whether it's any character code we can
|
||||
* identify. Each of these tests, if it succeeds, will leave
|
||||
* the text converted into one-unichar-per-character Unicode in
|
||||
* ubuf, and the number of characters converted in ulen.
|
||||
*/
|
||||
if (looks_ascii(buf, nbytes, ubuf, &ulen)) {
|
||||
code = "ASCII";
|
||||
code_mime = "us-ascii";
|
||||
type = "text";
|
||||
} else if (looks_utf8(buf, nbytes, ubuf, &ulen)) {
|
||||
code = "UTF-8 Unicode";
|
||||
code_mime = "utf-8";
|
||||
type = "text";
|
||||
} else if ((i = looks_unicode(buf, nbytes, ubuf, &ulen))) {
|
||||
if (i == 1)
|
||||
code = "Little-endian UTF-16 Unicode";
|
||||
else
|
||||
code = "Big-endian UTF-16 Unicode";
|
||||
|
||||
type = "character data";
|
||||
code_mime = "utf-16"; /* is this defined? */
|
||||
} else if (looks_latin1(buf, nbytes, ubuf, &ulen)) {
|
||||
code = "ISO-8859";
|
||||
type = "text";
|
||||
code_mime = "iso-8859-1";
|
||||
} else if (looks_extended(buf, nbytes, ubuf, &ulen)) {
|
||||
code = "Non-ISO extended-ASCII";
|
||||
type = "text";
|
||||
code_mime = "unknown";
|
||||
} else {
|
||||
from_ebcdic(buf, nbytes, nbuf);
|
||||
|
||||
if (looks_ascii(nbuf, nbytes, ubuf, &ulen)) {
|
||||
code = "EBCDIC";
|
||||
type = "character data";
|
||||
code_mime = "ebcdic";
|
||||
} else if (looks_latin1(nbuf, nbytes, ubuf, &ulen)) {
|
||||
code = "International EBCDIC";
|
||||
type = "character data";
|
||||
code_mime = "ebcdic";
|
||||
} else {
|
||||
return 0; /* doesn't look like text at all */
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* for troff, look for . + letter + letter or .\";
|
||||
* this must be done to disambiguate tar archives' ./file
|
||||
* and other trash from real troff input.
|
||||
*
|
||||
* I believe Plan 9 troff allows non-ASCII characters in the names
|
||||
* of macros, so this test might possibly fail on such a file.
|
||||
*/
|
||||
if (*ubuf == '.') {
|
||||
unichar *tp = ubuf + 1;
|
||||
|
||||
while (ISSPC(*tp))
|
||||
++tp; /* skip leading whitespace */
|
||||
if ((tp[0] == '\\' && tp[1] == '\"') ||
|
||||
(isascii(tp[0]) && isalnum(tp[0]) &&
|
||||
isascii(tp[1]) && isalnum(tp[1]) &&
|
||||
ISSPC(tp[2]))) {
|
||||
subtype_mime = "text/troff";
|
||||
subtype = "troff or preprocessor input";
|
||||
goto subtype_identified;
|
||||
}
|
||||
}
|
||||
|
||||
if ((*buf == 'c' || *buf == 'C') && ISSPC(buf[1])) {
|
||||
subtype_mime = "text/fortran";
|
||||
subtype = "fortran program";
|
||||
goto subtype_identified;
|
||||
}
|
||||
|
||||
/* look for tokens from names.h - this is expensive! */
|
||||
|
||||
i = 0;
|
||||
while (i < ulen) {
|
||||
int end;
|
||||
|
||||
/*
|
||||
* skip past any leading space
|
||||
*/
|
||||
while (i < ulen && ISSPC(ubuf[i]))
|
||||
i++;
|
||||
if (i >= ulen)
|
||||
break;
|
||||
|
||||
/*
|
||||
* find the next whitespace
|
||||
*/
|
||||
for (end = i + 1; end < nbytes; end++)
|
||||
if (ISSPC(ubuf[end]))
|
||||
break;
|
||||
|
||||
/*
|
||||
* compare the word thus isolated against the token list
|
||||
*/
|
||||
for (p = names; p < names + NNAMES; p++) {
|
||||
if (ascmatch(p->name, ubuf + i, end - i)) {
|
||||
subtype = types[p->type].human;
|
||||
subtype_mime = types[p->type].mime;
|
||||
goto subtype_identified;
|
||||
}
|
||||
}
|
||||
|
||||
i = end;
|
||||
}
|
||||
|
||||
subtype_identified:
|
||||
|
||||
/*
|
||||
* Now try to discover other details about the file.
|
||||
*/
|
||||
for (i = 0; i < ulen; i++) {
|
||||
if (i > last_line_end + MAXLINELEN)
|
||||
has_long_lines = 1;
|
||||
|
||||
if (ubuf[i] == '\033')
|
||||
has_escapes = 1;
|
||||
if (ubuf[i] == '\b')
|
||||
has_backspace = 1;
|
||||
|
||||
if (ubuf[i] == '\r' && (i + 1 < ulen && ubuf[i + 1] == '\n')) {
|
||||
n_crlf++;
|
||||
last_line_end = i;
|
||||
}
|
||||
if (ubuf[i] == '\r' && (i + 1 >= ulen || ubuf[i + 1] != '\n')) {
|
||||
n_cr++;
|
||||
last_line_end = i;
|
||||
}
|
||||
if (ubuf[i] == '\n' && (i - 1 < 0 || ubuf[i - 1] != '\r')) {
|
||||
n_lf++;
|
||||
last_line_end = i;
|
||||
}
|
||||
if (ubuf[i] == 0x85) { /* X3.64/ECMA-43 "next line" character */
|
||||
n_nel++;
|
||||
last_line_end = i;
|
||||
}
|
||||
}
|
||||
|
||||
if (iflag) {
|
||||
if (subtype_mime)
|
||||
ckfputs(subtype_mime, stdout);
|
||||
else
|
||||
ckfputs("text/plain", stdout);
|
||||
|
||||
if (code_mime) {
|
||||
ckfputs("; charset=", stdout);
|
||||
ckfputs(code_mime, stdout);
|
||||
}
|
||||
} else {
|
||||
ckfputs(code, stdout);
|
||||
|
||||
if (subtype) {
|
||||
ckfputs(" ", stdout);
|
||||
ckfputs(subtype, stdout);
|
||||
}
|
||||
|
||||
ckfputs(" ", stdout);
|
||||
ckfputs(type, stdout);
|
||||
|
||||
if (has_long_lines)
|
||||
ckfputs(", with very long lines", stdout);
|
||||
|
||||
/*
|
||||
* Only report line terminators if we find one other than LF,
|
||||
* or if we find none at all.
|
||||
*/
|
||||
if ((n_crlf == 0 && n_cr == 0 && n_nel == 0 && n_lf == 0) ||
|
||||
(n_crlf != 0 || n_cr != 0 || n_nel != 0)) {
|
||||
ckfputs(", with", stdout);
|
||||
|
||||
if (n_crlf == 0 && n_cr == 0 && n_nel == 0 && n_lf == 0)
|
||||
ckfputs(" no", stdout);
|
||||
else {
|
||||
if (n_crlf) {
|
||||
ckfputs(" CRLF", stdout);
|
||||
if (n_cr || n_lf || n_nel)
|
||||
ckfputs(",", stdout);
|
||||
}
|
||||
if (n_cr) {
|
||||
ckfputs(" CR", stdout);
|
||||
if (n_lf || n_nel)
|
||||
ckfputs(",", stdout);
|
||||
}
|
||||
if (n_lf) {
|
||||
ckfputs(" LF", stdout);
|
||||
if (n_nel)
|
||||
ckfputs(",", stdout);
|
||||
}
|
||||
if (n_nel)
|
||||
ckfputs(" NEL", stdout);
|
||||
}
|
||||
|
||||
ckfputs(" line terminators", stdout);
|
||||
}
|
||||
|
||||
if (has_escapes)
|
||||
ckfputs(", with escape sequences", stdout);
|
||||
if (has_backspace)
|
||||
ckfputs(", with overstriking", stdout);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int
|
||||
ascmatch(const unsigned char *s, const unichar *us, int ulen)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < ulen; i++) {
|
||||
if (s[i] != us[i])
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (s[i])
|
||||
return 0;
|
||||
else
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* This table reflects a particular philosophy about what constitutes
|
||||
* "text," and there is room for disagreement about it.
|
||||
*
|
||||
* Version 3.31 of the file command considered a file to be ASCII if
|
||||
* each of its characters was approved by either the isascii() or
|
||||
* isalpha() function. On most systems, this would mean that any
|
||||
* file consisting only of characters in the range 0x00 ... 0x7F
|
||||
* would be called ASCII text, but many systems might reasonably
|
||||
* consider some characters outside this range to be alphabetic,
|
||||
* so the file command would call such characters ASCII. It might
|
||||
* have been more accurate to call this "considered textual on the
|
||||
* local system" than "ASCII."
|
||||
*
|
||||
* It considered a file to be "International language text" if each
|
||||
* of its characters was either an ASCII printing character (according
|
||||
* to the real ASCII standard, not the above test), a character in
|
||||
* the range 0x80 ... 0xFF, or one of the following control characters:
|
||||
* backspace, tab, line feed, vertical tab, form feed, carriage return,
|
||||
* escape. No attempt was made to determine the language in which files
|
||||
* of this type were written.
|
||||
*
|
||||
*
|
||||
* The table below considers a file to be ASCII if all of its characters
|
||||
* are either ASCII printing characters (again, according to the X3.4
|
||||
* standard, not isascii()) or any of the following controls: bell,
|
||||
* backspace, tab, line feed, form feed, carriage return, esc, nextline.
|
||||
*
|
||||
* I include bell because some programs (particularly shell scripts)
|
||||
* use it literally, even though it is rare in normal text. I exclude
|
||||
* vertical tab because it never seems to be used in real text. I also
|
||||
* include, with hesitation, the X3.64/ECMA-43 control nextline (0x85),
|
||||
* because that's what the dd EBCDIC->ASCII table maps the EBCDIC newline
|
||||
* character to. It might be more appropriate to include it in the 8859
|
||||
* set instead of the ASCII set, but it's got to be included in *something*
|
||||
* we recognize or EBCDIC files aren't going to be considered textual.
|
||||
* Some old Unix source files use SO/SI (^N/^O) to shift between Greek
|
||||
* and Latin characters, so these should possibly be allowed. But they
|
||||
* make a real mess on VT100-style displays if they're not paired properly,
|
||||
* so we are probably better off not calling them text.
|
||||
*
|
||||
* A file is considered to be ISO-8859 text if its characters are all
|
||||
* either ASCII, according to the above definition, or printing characters
|
||||
* from the ISO-8859 8-bit extension, characters 0xA0 ... 0xFF.
|
||||
*
|
||||
* Finally, a file is considered to be international text from some other
|
||||
* character code if its characters are all either ISO-8859 (according to
|
||||
* the above definition) or characters in the range 0x80 ... 0x9F, which
|
||||
* ISO-8859 considers to be control characters but the IBM PC and Macintosh
|
||||
* consider to be printing characters.
|
||||
*/
|
||||
|
||||
#define F 0 /* character never appears in text */
|
||||
#define T 1 /* character appears in plain ASCII text */
|
||||
#define I 2 /* character appears in ISO-8859 text */
|
||||
#define X 3 /* character appears in non-ISO extended ASCII (Mac, IBM PC) */
|
||||
|
||||
static char text_chars[256] = {
|
||||
/* BEL BS HT LF FF CR */
|
||||
F, F, F, F, F, F, F, T, T, T, T, F, T, T, F, F, /* 0x0X */
|
||||
/* ESC */
|
||||
F, F, F, F, F, F, F, F, F, F, F, T, F, F, F, F, /* 0x1X */
|
||||
T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, /* 0x2X */
|
||||
T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, /* 0x3X */
|
||||
T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, /* 0x4X */
|
||||
T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, /* 0x5X */
|
||||
T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, /* 0x6X */
|
||||
T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, F, /* 0x7X */
|
||||
/* NEL */
|
||||
X, X, X, X, X, T, X, X, X, X, X, X, X, X, X, X, /* 0x8X */
|
||||
X, X, X, X, X, X, X, X, X, X, X, X, X, X, X, X, /* 0x9X */
|
||||
I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, /* 0xaX */
|
||||
I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, /* 0xbX */
|
||||
I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, /* 0xcX */
|
||||
I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, /* 0xdX */
|
||||
I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, /* 0xeX */
|
||||
I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I /* 0xfX */
|
||||
};
|
||||
|
||||
static int
|
||||
looks_ascii(const unsigned char *buf, int nbytes, unichar *ubuf, int *ulen)
|
||||
{
|
||||
int i;
|
||||
|
||||
*ulen = 0;
|
||||
|
||||
for (i = 0; i < nbytes; i++) {
|
||||
int t = text_chars[buf[i]];
|
||||
|
||||
if (t != T)
|
||||
return 0;
|
||||
|
||||
ubuf[(*ulen)++] = buf[i];
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int
|
||||
looks_latin1(const unsigned char *buf, int nbytes, unichar *ubuf, int *ulen)
|
||||
{
|
||||
int i;
|
||||
|
||||
*ulen = 0;
|
||||
|
||||
for (i = 0; i < nbytes; i++) {
|
||||
int t = text_chars[buf[i]];
|
||||
|
||||
if (t != T && t != I)
|
||||
return 0;
|
||||
|
||||
ubuf[(*ulen)++] = buf[i];
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int
|
||||
looks_extended(const unsigned char *buf, int nbytes, unichar *ubuf, int *ulen)
|
||||
{
|
||||
int i;
|
||||
|
||||
*ulen = 0;
|
||||
|
||||
for (i = 0; i < nbytes; i++) {
|
||||
int t = text_chars[buf[i]];
|
||||
|
||||
if (t != T && t != I && t != X)
|
||||
return 0;
|
||||
|
||||
ubuf[(*ulen)++] = buf[i];
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int
|
||||
looks_utf8(const unsigned char *buf, int nbytes, unichar *ubuf, int *ulen)
|
||||
{
|
||||
int i, n;
|
||||
unichar c;
|
||||
int gotone = 0;
|
||||
|
||||
*ulen = 0;
|
||||
|
||||
for (i = 0; i < nbytes; i++) {
|
||||
if ((buf[i] & 0x80) == 0) { /* 0xxxxxxx is plain ASCII */
|
||||
/*
|
||||
* Even if the whole file is valid UTF-8 sequences,
|
||||
* still reject it if it uses weird control characters.
|
||||
*/
|
||||
|
||||
if (text_chars[buf[i]] != T)
|
||||
return 0;
|
||||
|
||||
ubuf[(*ulen)++] = buf[i];
|
||||
} else if ((buf[i] & 0x40) == 0) { /* 10xxxxxx never 1st byte */
|
||||
return 0;
|
||||
} else { /* 11xxxxxx begins UTF-8 */
|
||||
int following;
|
||||
|
||||
if ((buf[i] & 0x20) == 0) { /* 110xxxxx */
|
||||
c = buf[i] & 0x1f;
|
||||
following = 1;
|
||||
} else if ((buf[i] & 0x10) == 0) { /* 1110xxxx */
|
||||
c = buf[i] & 0x0f;
|
||||
following = 2;
|
||||
} else if ((buf[i] & 0x08) == 0) { /* 11110xxx */
|
||||
c = buf[i] & 0x07;
|
||||
following = 3;
|
||||
} else if ((buf[i] & 0x04) == 0) { /* 111110xx */
|
||||
c = buf[i] & 0x03;
|
||||
following = 4;
|
||||
} else if ((buf[i] & 0x02) == 0) { /* 1111110x */
|
||||
c = buf[i] & 0x01;
|
||||
following = 5;
|
||||
} else
|
||||
return 0;
|
||||
|
||||
for (n = 0; n < following; n++) {
|
||||
i++;
|
||||
if (i >= nbytes)
|
||||
goto done;
|
||||
|
||||
if ((buf[i] & 0x80) == 0 || (buf[i] & 0x40))
|
||||
return 0;
|
||||
|
||||
c = (c << 6) + (buf[i] & 0x3f);
|
||||
}
|
||||
|
||||
ubuf[(*ulen)++] = c;
|
||||
gotone = 1;
|
||||
}
|
||||
}
|
||||
done:
|
||||
return gotone; /* don't claim it's UTF-8 if it's all 7-bit */
|
||||
}
|
||||
|
||||
/*
|
||||
* returns 1 for little-endian, 2 for big-endian UTF-16
|
||||
* 0 for neither
|
||||
*/
|
||||
static int
|
||||
looks_unicode(const unsigned char *buf, int nbytes, unichar *ubuf, int *ulen)
|
||||
{
|
||||
int bigend;
|
||||
int i;
|
||||
|
||||
if (nbytes < 2)
|
||||
return 0;
|
||||
|
||||
if (buf[0] == 0xff && buf[1] == 0xfe)
|
||||
bigend = 0;
|
||||
else if (buf[0] == 0xfe && buf[1] == 0xff)
|
||||
bigend = 1;
|
||||
else
|
||||
return 0;
|
||||
|
||||
*ulen = 0;
|
||||
|
||||
for (i = 2; i + 1 < nbytes; i += 2) {
|
||||
/* XXX fix to properly handle chars > 65536 */
|
||||
|
||||
if (bigend)
|
||||
ubuf[(*ulen)++] = buf[i + 1] + 256 * buf[i];
|
||||
else
|
||||
ubuf[(*ulen)++] = buf[i] + 256 * buf[i + 1];
|
||||
|
||||
if (ubuf[*ulen - 1] == 0xfffe)
|
||||
return 0;
|
||||
if (ubuf[*ulen - 1] < 128 && text_chars[ubuf[*ulen - 1]] != T)
|
||||
return 0;
|
||||
}
|
||||
|
||||
return (1+bigend);
|
||||
}
|
||||
|
||||
#undef F
|
||||
#undef T
|
||||
#undef I
|
||||
#undef X
|
||||
|
||||
/*
|
||||
* This table maps each EBCDIC character to an (8-bit extended) ASCII
|
||||
* character, as specified in the rationale for the dd(1) command in
|
||||
* draft 11.2 (September, 1991) of the POSIX P1003.2 standard.
|
||||
*
|
||||
* Unfortunately it does not seem to correspond exactly to any of the
|
||||
* five variants of EBCDIC documented in IBM's _Enterprise Systems
|
||||
* Architecture/390: Principles of Operation_, SA22-7201-06, Seventh
|
||||
* Edition, July, 1999, pp. I-1 - I-4.
|
||||
*
|
||||
* Fortunately, though, all versions of EBCDIC, including this one, agree
|
||||
* on most of the printing characters that also appear in (7-bit) ASCII.
|
||||
* Of these, only '|', '!', '~', '^', '[', and ']' are in question at all.
|
||||
*
|
||||
* Fortunately too, there is general agreement that codes 0x00 through
|
||||
* 0x3F represent control characters, 0x41 a nonbreaking space, and the
|
||||
* remainder printing characters.
|
||||
*
|
||||
* This is sufficient to allow us to identify EBCDIC text and to distinguish
|
||||
* between old-style and internationalized examples of text.
|
||||
*/
|
||||
|
||||
unsigned char ebcdic_to_ascii[] = {
|
||||
0, 1, 2, 3, 156, 9, 134, 127, 151, 141, 142, 11, 12, 13, 14, 15,
|
||||
16, 17, 18, 19, 157, 133, 8, 135, 24, 25, 146, 143, 28, 29, 30, 31,
|
||||
128, 129, 130, 131, 132, 10, 23, 27, 136, 137, 138, 139, 140, 5, 6, 7,
|
||||
144, 145, 22, 147, 148, 149, 150, 4, 152, 153, 154, 155, 20, 21, 158, 26,
|
||||
' ', 160, 161, 162, 163, 164, 165, 166, 167, 168, 213, '.', '<', '(', '+', '|',
|
||||
'&', 169, 170, 171, 172, 173, 174, 175, 176, 177, '!', '$', '*', ')', ';', '~',
|
||||
'-', '/', 178, 179, 180, 181, 182, 183, 184, 185, 203, ',', '%', '_', '>', '?',
|
||||
186, 187, 188, 189, 190, 191, 192, 193, 194, '`', ':', '#', '@', '\'','=', '"',
|
||||
195, 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 196, 197, 198, 199, 200, 201,
|
||||
202, 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', '^', 204, 205, 206, 207, 208,
|
||||
209, 229, 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 210, 211, 212, '[', 214, 215,
|
||||
216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, ']', 230, 231,
|
||||
'{', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 232, 233, 234, 235, 236, 237,
|
||||
'}', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 238, 239, 240, 241, 242, 243,
|
||||
'\\',159, 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 244, 245, 246, 247, 248, 249,
|
||||
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 250, 251, 252, 253, 254, 255
|
||||
};
|
||||
|
||||
/*
|
||||
* The following EBCDIC-to-ASCII table may relate more closely to reality,
|
||||
* or at least to modern reality. It comes from
|
||||
*
|
||||
* http://ftp.s390.ibm.com/products/oe/bpxqp9.html
|
||||
*
|
||||
* and maps the characters of EBCDIC code page 1047 (the code used for
|
||||
* Unix-derived software on IBM's 390 systems) to the corresponding
|
||||
* characters from ISO 8859-1.
|
||||
*
|
||||
* If this table is used instead of the above one, some of the special
|
||||
* cases for the NEL character can be taken out of the code.
|
||||
*/
|
||||
|
||||
unsigned char ebcdic_1047_to_8859[] = {
|
||||
0x00,0x01,0x02,0x03,0x9C,0x09,0x86,0x7F,0x97,0x8D,0x8E,0x0B,0x0C,0x0D,0x0E,0x0F,
|
||||
0x10,0x11,0x12,0x13,0x9D,0x0A,0x08,0x87,0x18,0x19,0x92,0x8F,0x1C,0x1D,0x1E,0x1F,
|
||||
0x80,0x81,0x82,0x83,0x84,0x85,0x17,0x1B,0x88,0x89,0x8A,0x8B,0x8C,0x05,0x06,0x07,
|
||||
0x90,0x91,0x16,0x93,0x94,0x95,0x96,0x04,0x98,0x99,0x9A,0x9B,0x14,0x15,0x9E,0x1A,
|
||||
0x20,0xA0,0xE2,0xE4,0xE0,0xE1,0xE3,0xE5,0xE7,0xF1,0xA2,0x2E,0x3C,0x28,0x2B,0x7C,
|
||||
0x26,0xE9,0xEA,0xEB,0xE8,0xED,0xEE,0xEF,0xEC,0xDF,0x21,0x24,0x2A,0x29,0x3B,0x5E,
|
||||
0x2D,0x2F,0xC2,0xC4,0xC0,0xC1,0xC3,0xC5,0xC7,0xD1,0xA6,0x2C,0x25,0x5F,0x3E,0x3F,
|
||||
0xF8,0xC9,0xCA,0xCB,0xC8,0xCD,0xCE,0xCF,0xCC,0x60,0x3A,0x23,0x40,0x27,0x3D,0x22,
|
||||
0xD8,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0xAB,0xBB,0xF0,0xFD,0xFE,0xB1,
|
||||
0xB0,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72,0xAA,0xBA,0xE6,0xB8,0xC6,0xA4,
|
||||
0xB5,0x7E,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0xA1,0xBF,0xD0,0x5B,0xDE,0xAE,
|
||||
0xAC,0xA3,0xA5,0xB7,0xA9,0xA7,0xB6,0xBC,0xBD,0xBE,0xDD,0xA8,0xAF,0x5D,0xB4,0xD7,
|
||||
0x7B,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0xAD,0xF4,0xF6,0xF2,0xF3,0xF5,
|
||||
0x7D,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0xB9,0xFB,0xFC,0xF9,0xFA,0xFF,
|
||||
0x5C,0xF7,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0xB2,0xD4,0xD6,0xD2,0xD3,0xD5,
|
||||
0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0xB3,0xDB,0xDC,0xD9,0xDA,0x9F
|
||||
};
|
||||
|
||||
/*
|
||||
* Copy buf[0 ... nbytes-1] into out[], translating EBCDIC to ASCII.
|
||||
*/
|
||||
static void
|
||||
from_ebcdic(const unsigned char *buf, int nbytes, unsigned char *out)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < nbytes; i++) {
|
||||
out[i] = ebcdic_to_ascii[buf[i]];
|
||||
}
|
||||
}
|
|
@ -1,336 +0,0 @@
|
|||
/* $NetBSD: compress.c,v 1.14 2002/07/10 16:15:53 pooka Exp $ */
|
||||
|
||||
/*
|
||||
* compress routines:
|
||||
* zmagic() - returns 0 if not recognized, uncompresses and prints
|
||||
* information if recognized
|
||||
* uncompress(method, old, n, newch) - uncompress old into new,
|
||||
* using method, return sizeof new
|
||||
*/
|
||||
#include "file.h"
|
||||
#include <stdlib.h>
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#include <string.h>
|
||||
#ifdef HAVE_SYS_WAIT_H
|
||||
#include <sys/wait.h>
|
||||
#endif
|
||||
#ifdef HAVE_LIBZ
|
||||
#include <zlib.h>
|
||||
#endif
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
FILE_RCSID("@(#)Id: compress.c,v 1.25 2002/07/03 18:26:37 christos Exp ")
|
||||
#else
|
||||
__RCSID("$NetBSD: compress.c,v 1.14 2002/07/10 16:15:53 pooka Exp $");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
static struct {
|
||||
const char *magic;
|
||||
int maglen;
|
||||
const char *const argv[3];
|
||||
int silent;
|
||||
} compr[] = {
|
||||
{ "\037\235", 2, { "gzip", "-cdq", NULL }, 1 }, /* compressed */
|
||||
/* Uncompress can get stuck; so use gzip first if we have it
|
||||
* Idea from Damien Clark, thanks! */
|
||||
{ "\037\235", 2, { "uncompress", "-c", NULL }, 1 }, /* compressed */
|
||||
{ "\037\213", 2, { "gzip", "-cdq", NULL }, 1 }, /* gzipped */
|
||||
{ "\037\236", 2, { "gzip", "-cdq", NULL }, 1 }, /* frozen */
|
||||
{ "\037\240", 2, { "gzip", "-cdq", NULL }, 1 }, /* SCO LZH */
|
||||
/* the standard pack utilities do not accept standard input */
|
||||
{ "\037\036", 2, { "gzip", "-cdq", NULL }, 0 }, /* packed */
|
||||
{ "BZh", 3, { "bzip2", "-cd", NULL }, 1 }, /* bzip2-ed */
|
||||
};
|
||||
|
||||
static int ncompr = sizeof(compr) / sizeof(compr[0]);
|
||||
|
||||
|
||||
static int swrite(int, const void *, size_t);
|
||||
static int sread(int, void *, size_t);
|
||||
static int uncompressbuf(int, const unsigned char *, unsigned char **, int);
|
||||
#ifdef HAVE_LIBZ
|
||||
static int uncompressgzipped(const unsigned char *, unsigned char **, int);
|
||||
#endif
|
||||
|
||||
int
|
||||
zmagic(const char *fname, unsigned char *buf, int nbytes)
|
||||
{
|
||||
unsigned char *newbuf;
|
||||
int newsize;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ncompr; i++) {
|
||||
if (nbytes < compr[i].maglen)
|
||||
continue;
|
||||
if (memcmp(buf, compr[i].magic, compr[i].maglen) == 0 &&
|
||||
(newsize = uncompressbuf(i, buf, &newbuf, nbytes)) != 0) {
|
||||
tryit(fname, newbuf, newsize, 1);
|
||||
free(newbuf);
|
||||
printf(" (");
|
||||
tryit(fname, buf, nbytes, 0);
|
||||
printf(")");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (i == ncompr)
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* `safe' write for sockets and pipes.
|
||||
*/
|
||||
static int
|
||||
swrite(int fd, const void *buf, size_t n)
|
||||
{
|
||||
int rv;
|
||||
size_t rn = n;
|
||||
|
||||
do
|
||||
switch (rv = write(fd, buf, n)) {
|
||||
case -1:
|
||||
if (errno == EINTR)
|
||||
continue;
|
||||
return -1;
|
||||
default:
|
||||
n -= rv;
|
||||
buf = ((const char *)buf) + rv;
|
||||
break;
|
||||
}
|
||||
while (n > 0);
|
||||
return rn;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* `safe' read for sockets and pipes.
|
||||
*/
|
||||
static int
|
||||
sread(int fd, void *buf, size_t n)
|
||||
{
|
||||
int rv;
|
||||
size_t rn = n;
|
||||
|
||||
do
|
||||
switch (rv = read(fd, buf, n)) {
|
||||
case -1:
|
||||
if (errno == EINTR)
|
||||
continue;
|
||||
return -1;
|
||||
case 0:
|
||||
return rn - n;
|
||||
default:
|
||||
n -= rv;
|
||||
buf = ((char *)buf) + rv;
|
||||
break;
|
||||
}
|
||||
while (n > 0);
|
||||
return rn;
|
||||
}
|
||||
|
||||
int
|
||||
pipe2file(int fd, void *startbuf, size_t nbytes)
|
||||
{
|
||||
char buf[4096];
|
||||
int r, tfd;
|
||||
|
||||
(void)strcpy(buf, "/tmp/file.XXXXXX");
|
||||
#ifndef HAVE_MKSTEMP
|
||||
{
|
||||
char *ptr = mktemp(buf);
|
||||
tfd = open(ptr, O_RDWR|O_TRUNC|O_EXCL|O_CREAT, 0600);
|
||||
r = errno;
|
||||
(void)unlink(ptr);
|
||||
errno = r;
|
||||
}
|
||||
#else
|
||||
tfd = mkstemp(buf);
|
||||
r = errno;
|
||||
(void)unlink(buf);
|
||||
errno = r;
|
||||
#endif
|
||||
if (tfd == -1) {
|
||||
error("Can't create temporary file for pipe copy (%s)\n",
|
||||
strerror(errno));
|
||||
/*NOTREACHED*/
|
||||
}
|
||||
|
||||
if (swrite(tfd, startbuf, nbytes) != nbytes)
|
||||
r = 1;
|
||||
else {
|
||||
while ((r = sread(fd, buf, sizeof(buf))) > 0)
|
||||
if (swrite(tfd, buf, r) != r)
|
||||
break;
|
||||
}
|
||||
|
||||
switch (r) {
|
||||
case -1:
|
||||
error("Error copying from pipe to temp file (%s)\n",
|
||||
strerror(errno));
|
||||
/*NOTREACHED*/
|
||||
case 0:
|
||||
break;
|
||||
default:
|
||||
error("Error while writing to temp file (%s)\n",
|
||||
strerror(errno));
|
||||
/*NOTREACHED*/
|
||||
}
|
||||
|
||||
/*
|
||||
* We duplicate the file descriptor, because fclose on a
|
||||
* tmpfile will delete the file, but any open descriptors
|
||||
* can still access the phantom inode.
|
||||
*/
|
||||
if ((fd = dup2(tfd, fd)) == -1) {
|
||||
error("Couldn't dup destcriptor for temp file(%s)\n",
|
||||
strerror(errno));
|
||||
/*NOTREACHED*/
|
||||
}
|
||||
(void)close(tfd);
|
||||
if (lseek(fd, (off_t)0, SEEK_SET) == (off_t)-1) {
|
||||
error("Couldn't seek on temp file (%s)\n", strerror(errno));
|
||||
/*NOTREACHED*/
|
||||
}
|
||||
return fd;
|
||||
}
|
||||
|
||||
#ifdef HAVE_LIBZ
|
||||
|
||||
#define FHCRC (1 << 1)
|
||||
#define FEXTRA (1 << 2)
|
||||
#define FNAME (1 << 3)
|
||||
#define FCOMMENT (1 << 4)
|
||||
|
||||
static int
|
||||
uncompressgzipped(const unsigned char *old, unsigned char **newch, int n)
|
||||
{
|
||||
unsigned char flg = old[3];
|
||||
int data_start = 10;
|
||||
z_stream z;
|
||||
int rc;
|
||||
|
||||
if (flg & FEXTRA)
|
||||
data_start += 2 + old[data_start] + old[data_start + 1] * 256;
|
||||
if (flg & FNAME) {
|
||||
while(old[data_start])
|
||||
data_start++;
|
||||
data_start++;
|
||||
}
|
||||
if(flg & FCOMMENT) {
|
||||
while(old[data_start])
|
||||
data_start++;
|
||||
data_start++;
|
||||
}
|
||||
if(flg & FHCRC)
|
||||
data_start += 2;
|
||||
|
||||
if ((*newch = (unsigned char *)malloc(HOWMANY + 1)) == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
z.next_in = (Bytef *)(old + data_start);
|
||||
z.avail_in = n - data_start;
|
||||
z.next_out = *newch;
|
||||
z.avail_out = HOWMANY;
|
||||
z.zalloc = Z_NULL;
|
||||
z.zfree = Z_NULL;
|
||||
z.opaque = Z_NULL;
|
||||
|
||||
rc = inflateInit2(&z, -15);
|
||||
if (rc != Z_OK) {
|
||||
(void) fprintf(stderr,"%s: zlib: %s\n", progname, z.msg);
|
||||
return 0;
|
||||
}
|
||||
|
||||
rc = inflate(&z, Z_SYNC_FLUSH);
|
||||
if (rc != Z_OK && rc != Z_STREAM_END) {
|
||||
fprintf(stderr,"%s: zlib: %s\n", progname, z.msg);
|
||||
return 0;
|
||||
}
|
||||
|
||||
n = z.total_out;
|
||||
inflateEnd(&z);
|
||||
|
||||
/* let's keep the nul-terminate tradition */
|
||||
(*newch)[n++] = '\0';
|
||||
|
||||
return n;
|
||||
}
|
||||
#endif
|
||||
|
||||
static int
|
||||
uncompressbuf(int method, const unsigned char *old, unsigned char **newch,
|
||||
int n)
|
||||
{
|
||||
int fdin[2], fdout[2];
|
||||
|
||||
/* The buffer is NUL terminated, and we don't need that. */
|
||||
n--;
|
||||
|
||||
#ifdef HAVE_LIBZ
|
||||
if (method == 2)
|
||||
return uncompressgzipped(old,newch,n);
|
||||
#endif
|
||||
|
||||
if (pipe(fdin) == -1 || pipe(fdout) == -1) {
|
||||
error("cannot create pipe (%s).\n", strerror(errno));
|
||||
/*NOTREACHED*/
|
||||
}
|
||||
switch (fork()) {
|
||||
case 0: /* child */
|
||||
(void) close(0);
|
||||
(void) dup(fdin[0]);
|
||||
(void) close(fdin[0]);
|
||||
(void) close(fdin[1]);
|
||||
|
||||
(void) close(1);
|
||||
(void) dup(fdout[1]);
|
||||
(void) close(fdout[0]);
|
||||
(void) close(fdout[1]);
|
||||
if (compr[method].silent)
|
||||
(void) close(2);
|
||||
|
||||
execvp(compr[method].argv[0],
|
||||
(char *const *)compr[method].argv);
|
||||
exit(1);
|
||||
/*NOTREACHED*/
|
||||
case -1:
|
||||
error("could not fork (%s).\n", strerror(errno));
|
||||
/*NOTREACHED*/
|
||||
|
||||
default: /* parent */
|
||||
(void) close(fdin[0]);
|
||||
(void) close(fdout[1]);
|
||||
if (swrite(fdin[1], old, n) != n) {
|
||||
n = 0;
|
||||
goto err;
|
||||
}
|
||||
(void) close(fdin[1]);
|
||||
fdin[1] = -1;
|
||||
if ((*newch = (unsigned char *) malloc(HOWMANY + 1)) == NULL) {
|
||||
n = 0;
|
||||
goto err;
|
||||
}
|
||||
if ((n = sread(fdout[0], *newch, HOWMANY)) <= 0) {
|
||||
free(*newch);
|
||||
n = 0;
|
||||
goto err;
|
||||
}
|
||||
/* NUL terminate, as every buffer is handled here. */
|
||||
(*newch)[n++] = '\0';
|
||||
err:
|
||||
if (fdin[1] != -1)
|
||||
(void) close(fdin[1]);
|
||||
(void) close(fdout[0]);
|
||||
(void) wait(NULL);
|
||||
return n;
|
||||
}
|
||||
}
|
|
@ -1,123 +0,0 @@
|
|||
/* config.h. Generated automatically by configure. */
|
||||
/* config.h.in. Generated automatically from configure.in by autoheader. */
|
||||
|
||||
/* Define to empty if the keyword does not work. */
|
||||
/* #undef const */
|
||||
|
||||
/* Define if your struct stat has st_rdev. */
|
||||
#define HAVE_ST_RDEV 1
|
||||
|
||||
/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
|
||||
#define HAVE_SYS_WAIT_H 1
|
||||
|
||||
/* Define if major, minor, and makedev are declared in <mkdev.h>. */
|
||||
/* #undef MAJOR_IN_MKDEV */
|
||||
|
||||
/* Define if major, minor, and makedev are declared in <sysmacros.h>. */
|
||||
/* #undef MAJOR_IN_SYSMACROS */
|
||||
|
||||
/* Define to `long' if <sys/types.h> doesn't define. */
|
||||
/* #undef off_t */
|
||||
|
||||
/* Define to `unsigned' if <sys/types.h> doesn't define. */
|
||||
/* #undef size_t */
|
||||
|
||||
/* Define if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
|
||||
/* Define if your <sys/time.h> declares struct tm. */
|
||||
/* #undef TM_IN_SYS_TIME */
|
||||
|
||||
/* Define if builtin ELF support is enabled. */
|
||||
#define BUILTIN_ELF 1
|
||||
|
||||
/* Define if ELF core file support is enabled. */
|
||||
#define ELFCORE 1
|
||||
|
||||
/* Define if the `long long' type works. */
|
||||
#define HAVE_LONG_LONG 1
|
||||
|
||||
/* Define if we have "tm_isdst" in "struct tm". */
|
||||
#define HAVE_TM_ISDST 1
|
||||
|
||||
/* Define if we have a global "int" variable "daylight". */
|
||||
#define HAVE_DAYLIGHT 1
|
||||
|
||||
/* Define to `unsigned char' if standard headers don't define. */
|
||||
/* #define uint8_t unsigned char */
|
||||
|
||||
/* Define to `unsigned short' if standard headers don't define. */
|
||||
/* #define uint16_t unsigned short */
|
||||
|
||||
/* Define to `unsigned int' if standard headers don't define. */
|
||||
/* #define uint32_t unsigned int */
|
||||
|
||||
/* Define to `unsigned long long', if available, or `unsigned long', if
|
||||
standard headers don't define. */
|
||||
/* #define uint64_t unsigned long long */
|
||||
|
||||
/* The number of bytes in a uint8_t. */
|
||||
#define SIZEOF_UINT8_T 1
|
||||
|
||||
/* The number of bytes in a uint16_t. */
|
||||
#define SIZEOF_UINT16_T 2
|
||||
|
||||
/* The number of bytes in a uint32_t. */
|
||||
#define SIZEOF_UINT32_T 4
|
||||
|
||||
/* The number of bytes in a uint64_t. */
|
||||
#define SIZEOF_UINT64_T 8
|
||||
|
||||
/* Define if you have the mkstemp function. */
|
||||
#define HAVE_MKSTEMP 1
|
||||
|
||||
/* Define if you have the mmap function. */
|
||||
#define HAVE_MMAP 1
|
||||
|
||||
/* Define if you have the strerror function. */
|
||||
#define HAVE_STRERROR 1
|
||||
|
||||
/* Define if you have the strtoul function. */
|
||||
#define HAVE_STRTOUL 1
|
||||
|
||||
/* Define if you have the <fcntl.h> header file. */
|
||||
#define HAVE_FCNTL_H 1
|
||||
|
||||
/* Define if you have the <getopt.h> header file. */
|
||||
#define HAVE_GETOPT_H 1
|
||||
|
||||
/* Define if you have the <locale.h> header file. */
|
||||
#define HAVE_LOCALE_H 1
|
||||
|
||||
/* Define if you have the <stdint.h> header file. */
|
||||
#include <sys/param.h>
|
||||
#if (__NetBSD_Version__ > 106000000) || defined(__linux__) || defined(__APPLE__)
|
||||
#define HAVE_STDINT_H 1
|
||||
#endif
|
||||
|
||||
/* Define if you have the <sys/mman.h> header file. */
|
||||
#define HAVE_SYS_MMAN_H 1
|
||||
|
||||
/* Define if you have the <sys/stat.h> header file. */
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
|
||||
/* Define if you have the <sys/types.h> header file. */
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
|
||||
/* Define if you have the <unistd.h> header file. */
|
||||
#define HAVE_UNISTD_H 1
|
||||
|
||||
/* Define if you have the z library (-lz). */
|
||||
#define HAVE_LIBZ 1
|
||||
|
||||
/* Name of package */
|
||||
#define PACKAGE "file"
|
||||
|
||||
/* Version number of package */
|
||||
#define VERSION "3.39"
|
||||
|
||||
/* HAVE_TM_ZONE */
|
||||
#define HAVE_TM_ZONE 1
|
||||
|
||||
/* HAVE_TZNAME */
|
||||
#define HAVE_TZNAME 1
|
|
@ -1,468 +0,0 @@
|
|||
.\" $NetBSD: file.1,v 1.30 2003/02/10 21:44:41 ross Exp $
|
||||
.\"
|
||||
.TH FILE 1
|
||||
.\" Id: file.man,v 1.42 2002/07/03 18:26:37 christos Exp
|
||||
.SH NAME
|
||||
file
|
||||
\- determine file type
|
||||
.SH SYNOPSIS
|
||||
.B file
|
||||
[
|
||||
.B \-bciknsvzL
|
||||
]
|
||||
[
|
||||
.B \-f
|
||||
.I namefile
|
||||
]
|
||||
[
|
||||
.B \-m
|
||||
.I magicfiles
|
||||
]
|
||||
.I file
|
||||
\*[Am]...
|
||||
.br
|
||||
.B file
|
||||
.B -C
|
||||
[
|
||||
.B \-m
|
||||
magicfile ]
|
||||
.SH DESCRIPTION
|
||||
This manual page documents version 3.39 of the
|
||||
.B file
|
||||
command.
|
||||
.PP
|
||||
.B File
|
||||
tests each argument in an attempt to classify it.
|
||||
There are three sets of tests, performed in this order:
|
||||
filesystem tests, magic number tests, and language tests.
|
||||
The
|
||||
.I first
|
||||
test that succeeds causes the file type to be printed.
|
||||
.PP
|
||||
The type printed will usually contain one of the words
|
||||
.B text
|
||||
(the file contains only
|
||||
printing characters and a few common control
|
||||
characters and is probably safe to read on an
|
||||
.SM ASCII
|
||||
terminal),
|
||||
.B executable
|
||||
(the file contains the result of compiling a program
|
||||
in a form understandable to some \s-1UNIX\s0 kernel or another),
|
||||
or
|
||||
.B data
|
||||
meaning anything else (data is usually `binary' or non-printable).
|
||||
Exceptions are well-known file formats (core files, tar archives)
|
||||
that are known to contain binary data.
|
||||
When modifying the file
|
||||
.I /usr/share/misc/magic
|
||||
or the program itself,
|
||||
.B "preserve these keywords" .
|
||||
People depend on knowing that all the readable files in a directory
|
||||
have the word ``text'' printed.
|
||||
Don't do as Berkeley did and change ``shell commands text''
|
||||
to ``shell script''.
|
||||
Note that the file
|
||||
.I /usr/share/misc/magic
|
||||
is built mechanically from a large number of small files in
|
||||
the subdirectory
|
||||
.I Magdir
|
||||
in the source distribution of this program.
|
||||
.PP
|
||||
The filesystem tests are based on examining the return from a
|
||||
.BR stat (2)
|
||||
system call.
|
||||
The program checks to see if the file is empty,
|
||||
or if it's some sort of special file.
|
||||
Any known file types appropriate to the system you are running on
|
||||
(sockets, symbolic links, or named pipes (FIFOs) on those systems that
|
||||
implement them)
|
||||
are intuited if they are defined in
|
||||
the system header file
|
||||
.IR \*[Lt]sys/stat.h\*[Gt] .
|
||||
.PP
|
||||
The magic number tests are used to check for files with data in
|
||||
particular fixed formats.
|
||||
The canonical example of this is a binary executable (compiled program)
|
||||
.I a.out
|
||||
file, whose format is defined in
|
||||
.I a.out.h
|
||||
and possibly
|
||||
.I exec.h
|
||||
in the standard include directory.
|
||||
These files have a `magic number' stored in a particular place
|
||||
near the beginning of the file that tells the \s-1UNIX\s0 operating system
|
||||
that the file is a binary executable, and which of several types thereof.
|
||||
The concept of `magic number' has been applied by extension to data files.
|
||||
Any file with some invariant identifier at a small fixed
|
||||
offset into the file can usually be described in this way.
|
||||
The information identifying these files is read from the compiled
|
||||
magic file
|
||||
.I /usr/share/misc/magic.mgc ,
|
||||
or
|
||||
.I /usr/share/misc/magic
|
||||
if the compile file does not exist.
|
||||
.PP
|
||||
If a file does not match any of the entries in the magic file,
|
||||
it is examined to see if it seems to be a text file.
|
||||
ASCII, ISO-8859-x, non-ISO 8-bit extended-ASCII character sets
|
||||
(such as those used on Macintosh and IBM PC systems),
|
||||
UTF-8-encoded Unicode, UTF-16-encoded Unicode, and EBCDIC
|
||||
character sets can be distinguished by the different
|
||||
ranges and sequences of bytes that constitute printable text
|
||||
in each set.
|
||||
If a file passes any of these tests, its character set is reported.
|
||||
ASCII, ISO-8859-x, UTF-8, and extended-ASCII files are identified
|
||||
as ``text'' because they will be mostly readable on nearly any terminal;
|
||||
UTF-16 and EBCDIC are only ``character data'' because, while
|
||||
they contain text, it is text that will require translation
|
||||
before it can be read.
|
||||
In addition,
|
||||
.B file
|
||||
will attempt to determine other characteristics of text-type files.
|
||||
If the lines of a file are terminated by CR, CRLF, or NEL, instead
|
||||
of the Unix-standard LF, this will be reported.
|
||||
Files that contain embedded escape sequences or overstriking
|
||||
will also be identified.
|
||||
.PP
|
||||
Once
|
||||
.B file
|
||||
has determined the character set used in a text-type file,
|
||||
it will
|
||||
attempt to determine in what language the file is written.
|
||||
The language tests look for particular strings (cf
|
||||
.IR names.h )
|
||||
that can appear anywhere in the first few blocks of a file.
|
||||
For example, the keyword
|
||||
.B .br
|
||||
indicates that the file is most likely a
|
||||
.BR troff (1)
|
||||
input file, just as the keyword
|
||||
.B struct
|
||||
indicates a C program.
|
||||
These tests are less reliable than the previous
|
||||
two groups, so they are performed last.
|
||||
The language test routines also test for some miscellany
|
||||
(such as
|
||||
.BR tar (1)
|
||||
archives).
|
||||
.PP
|
||||
Any file that cannot be identified as having been written
|
||||
in any of the character sets listed above is simply said to be ``data''.
|
||||
.SH OPTIONS
|
||||
.TP 8
|
||||
.B \-b
|
||||
Do not prepend filenames to output lines (brief mode).
|
||||
.TP 8
|
||||
.B \-c
|
||||
Cause a checking printout of the parsed form of the magic file.
|
||||
This is usually used in conjunction with
|
||||
.B \-m
|
||||
to debug a new magic file before installing it.
|
||||
.TP 8
|
||||
.B \-C
|
||||
Write a magic.mgc output file that contains a pre-parsed version of
|
||||
file.
|
||||
.TP 8
|
||||
.BI \-f " namefile"
|
||||
Read the names of the files to be examined from
|
||||
.I namefile
|
||||
(one per line)
|
||||
before the argument list.
|
||||
Either
|
||||
.I namefile
|
||||
or at least one filename argument must be present;
|
||||
to test the standard input, use ``\-'' as a filename argument.
|
||||
.TP 8
|
||||
.B \-i
|
||||
Causes the file command to output mime type strings rather than the more
|
||||
traditional human readable ones.
|
||||
Thus it may say
|
||||
``text/plain; charset=us-ascii''
|
||||
rather
|
||||
than ``ASCII text''.
|
||||
In order for this option to work, file changes the way
|
||||
it handles files recognised by the command itself (such as many of the
|
||||
text file types, directories etc), and makes use of an alternative
|
||||
``magic'' file.
|
||||
(See ``FILES'' section, below).
|
||||
.TP 8
|
||||
.B \-k
|
||||
Don't stop at the first match, keep going.
|
||||
.TP 8
|
||||
.BI \-m " list"
|
||||
Specify an alternate list of files containing magic numbers.
|
||||
This can be a single file, or a colon-separated list of files.
|
||||
.TP 8
|
||||
.B \-n
|
||||
Force stdout to be flushed after checking each file.
|
||||
This is only useful if
|
||||
checking a list of files.
|
||||
It is intended to be used by programs that want
|
||||
filetype output from a pipe.
|
||||
.TP 8
|
||||
.B \-v
|
||||
Print the version of the program and exit.
|
||||
.TP 8
|
||||
.B \-z
|
||||
Try to look inside compressed files.
|
||||
.TP 8
|
||||
.B \-L
|
||||
option causes symlinks to be followed, as the like-named option in
|
||||
.BR ls (1).
|
||||
(on systems that support symbolic links).
|
||||
.TP 8
|
||||
.B \-s
|
||||
Normally,
|
||||
.B file
|
||||
only attempts to read and determine the type of argument files which
|
||||
.BR stat (2)
|
||||
reports are ordinary files.
|
||||
This prevents problems, because reading special files may have peculiar
|
||||
consequences.
|
||||
Specifying the
|
||||
.BR \-s
|
||||
option causes
|
||||
.B file
|
||||
to also read argument files which are block or character special files.
|
||||
This is useful for determining the filesystem types of the data in raw
|
||||
disk partitions, which are block special files.
|
||||
This option also causes
|
||||
.B file
|
||||
to disregard the file size as reported by
|
||||
.BR stat (2)
|
||||
since on some systems it reports a zero size for raw disk partitions.
|
||||
.SH FILES
|
||||
.I /usr/share/misc/magic.mgc
|
||||
\- defaults compiled list of magic numbers
|
||||
.PP
|
||||
.I /usr/share/misc/magic
|
||||
\- default list of magic numbers
|
||||
.PP
|
||||
.I /usr/share/misc/magic.mime
|
||||
\- default list of magic numbers, used to output mime types when the -i option
|
||||
is specified.
|
||||
|
||||
.SH ENVIRONMENT
|
||||
The environment variable
|
||||
.B MAGIC
|
||||
can be used to set the default magic number files.
|
||||
.SH SEE ALSO
|
||||
.BR magic (5)
|
||||
\- description of magic file format.
|
||||
.br
|
||||
.BR strings (1), " od" (1), " hexdump(1)"
|
||||
\- tools for examining non-textfiles.
|
||||
.SH STANDARDS CONFORMANCE
|
||||
This program is believed to exceed the System V Interface Definition
|
||||
of FILE(CMD), as near as one can determine from the vague language
|
||||
contained therein.
|
||||
Its behaviour is mostly compatible with the System V program of the same name.
|
||||
This version knows more magic, however, so it will produce
|
||||
different (albeit more accurate) output in many cases.
|
||||
.PP
|
||||
The one significant difference
|
||||
between this version and System V
|
||||
is that this version treats any white space
|
||||
as a delimiter, so that spaces in pattern strings must be escaped.
|
||||
For example,
|
||||
.br
|
||||
\*[Gt]10 string language impress\ (imPRESS data)
|
||||
.br
|
||||
in an existing magic file would have to be changed to
|
||||
.br
|
||||
\*[Gt]10 string language\e impress (imPRESS data)
|
||||
.br
|
||||
In addition, in this version, if a pattern string contains a backslash,
|
||||
it must be escaped.
|
||||
For example
|
||||
.br
|
||||
0 string \ebegindata Andrew Toolkit document
|
||||
.br
|
||||
in an existing magic file would have to be changed to
|
||||
.br
|
||||
0 string \e\ebegindata Andrew Toolkit document
|
||||
.br
|
||||
.PP
|
||||
SunOS releases 3.2 and later from Sun Microsystems include a
|
||||
.BR file (1)
|
||||
command derived from the System V one, but with some extensions.
|
||||
My version differs from Sun's only in minor ways.
|
||||
It includes the extension of the `\*[Am]' operator, used as,
|
||||
for example,
|
||||
.br
|
||||
\*[Gt]16 long\*[Am]0x7fffffff \*[Gt]0 not stripped
|
||||
.SH MAGIC DIRECTORY
|
||||
The magic file entries have been collected from various sources,
|
||||
mainly USENET, and contributed by various authors.
|
||||
Christos Zoulas (address below) will collect additional
|
||||
or corrected magic file entries.
|
||||
A consolidation of magic file entries
|
||||
will be distributed periodically.
|
||||
.PP
|
||||
The order of entries in the magic file is significant.
|
||||
Depending on what system you are using, the order that
|
||||
they are put together may be incorrect.
|
||||
If your old
|
||||
.B file
|
||||
command uses a magic file,
|
||||
keep the old magic file around for comparison purposes
|
||||
(rename it to
|
||||
.IR /usr/share/misc/magic.orig ).
|
||||
.SH EXAMPLES
|
||||
.nf
|
||||
$ file file.c obj/file /dev/wd0a
|
||||
file.c: ASCII C program text
|
||||
.fi
|
||||
.na
|
||||
obj/file: ELF 32-bit LSB executable,
|
||||
Intel 80386,
|
||||
version 1 (SYSV),
|
||||
for NetBSD,
|
||||
dynamically linked (uses shared libs),
|
||||
not stripped
|
||||
.br
|
||||
.nf
|
||||
/dev/wd0a: block special (0/0)
|
||||
|
||||
# file -s /dev/rwd0[abe]
|
||||
/dev/rwd0a: x86 boot sector, BSD disklabel
|
||||
/dev/rwd0b: data
|
||||
.fi
|
||||
.na
|
||||
/dev/rwd0e:
|
||||
Unix Fast File system (little-endian),
|
||||
last mounted on /usr,
|
||||
last written at Mon Feb 10 13:22:40 2003,
|
||||
clean flag 2,
|
||||
number of blocks 28754208,
|
||||
number of data blocks 27812712,
|
||||
number of cylinder groups 3566,
|
||||
block size 8192,
|
||||
fragment size 1024,
|
||||
minimum percentage of free blocks 5,
|
||||
rotational delay 0ms,
|
||||
disk rotational speed 60rps,
|
||||
TIME optimization
|
||||
.ad
|
||||
.SH HISTORY
|
||||
There has been a
|
||||
.B file
|
||||
command in every \s-1UNIX\s0 since at least Research Version 4
|
||||
(man page dated November, 1973).
|
||||
The System V version introduced one significant major change:
|
||||
the external list of magic number types.
|
||||
This slowed the program down slightly but made it a lot more flexible.
|
||||
.PP
|
||||
This program, based on the System V version,
|
||||
was written by Ian Darwin \*[Lt]ian@darwinsys.com\*[Gt]
|
||||
without looking at anybody else's source code.
|
||||
.PP
|
||||
John Gilmore revised the code extensively, making it better than
|
||||
the first version.
|
||||
Geoff Collyer found several inadequacies
|
||||
and provided some magic file entries.
|
||||
Contributions by the `\*[Am]' operator by Rob McMahon, cudcv@warwick.ac.uk, 1989.
|
||||
.PP
|
||||
Guy Harris, guy@netapp.com, made many changes from 1993 to the present.
|
||||
.PP
|
||||
Primary development and maintenance from 1990 to the present by
|
||||
Christos Zoulas (christos@astron.com).
|
||||
.PP
|
||||
Altered by Chris Lowth, chris@lowth.com, 2000:
|
||||
Handle the ``-i'' option to output mime type strings and using an alternative
|
||||
magic file and internal logic.
|
||||
.PP
|
||||
Altered by Eric Fischer (enf@pobox.com), July, 2000,
|
||||
to identify character codes and attempt to identify the languages
|
||||
of non-ASCII files.
|
||||
.PP
|
||||
The list of contributors to the "Magdir" directory (source for the
|
||||
/etc/magic
|
||||
file) is too long to include here.
|
||||
You know who you are; thank you.
|
||||
.SH LEGAL NOTICE
|
||||
Copyright (c) Ian F. Darwin, Toronto, Canada, 1986-1999.
|
||||
Covered by the standard Berkeley Software Distribution copyright; see the file
|
||||
LEGAL.NOTICE in the source distribution.
|
||||
.PP
|
||||
The files
|
||||
.I tar.h
|
||||
and
|
||||
.I is_tar.c
|
||||
were written by John Gilmore from his public-domain
|
||||
.B tar
|
||||
program, and are not covered by the above license.
|
||||
.SH BUGS
|
||||
There must be a better way to automate the construction of the Magic
|
||||
file from all the glop in Magdir.
|
||||
What is it?
|
||||
Better yet, the magic file should be compiled into binary (say,
|
||||
.BR ndbm (3)
|
||||
or, better yet, fixed-length
|
||||
.SM ASCII
|
||||
strings for use in heterogenous network environments) for faster startup.
|
||||
Then the program would run as fast as the Version 7 program of the same name,
|
||||
with the flexibility of the System V version.
|
||||
.PP
|
||||
.B File
|
||||
uses several algorithms that favor speed over accuracy,
|
||||
thus it can be misled about the contents of
|
||||
text
|
||||
files.
|
||||
.PP
|
||||
The support for
|
||||
text
|
||||
files (primarily for programming languages)
|
||||
is simplistic, inefficient and requires recompilation to update.
|
||||
.PP
|
||||
There should be an ``else'' clause to follow a series of continuation lines.
|
||||
.PP
|
||||
The magic file and keywords should have regular expression support.
|
||||
Their use of
|
||||
.SM "ASCII TAB"
|
||||
as a field delimiter is ugly and makes
|
||||
it hard to edit the files, but is entrenched.
|
||||
.PP
|
||||
It might be advisable to allow upper-case letters in keywords
|
||||
for e.g.,
|
||||
.BR troff (1)
|
||||
commands vs man page macros.
|
||||
Regular expression support would make this easy.
|
||||
.PP
|
||||
The program doesn't grok \s-2FORTRAN\s0.
|
||||
It should be able to figure \s-2FORTRAN\s0 by seeing some keywords which
|
||||
appear indented at the start of line.
|
||||
Regular expression support would make this easy.
|
||||
.PP
|
||||
The list of keywords in
|
||||
.I ascmagic
|
||||
probably belongs in the Magic file.
|
||||
This could be done by using some keyword like `*' for the offset value.
|
||||
.PP
|
||||
Another optimisation would be to sort
|
||||
the magic file so that we can just run down all the
|
||||
tests for the first byte, first word, first long, etc, once we
|
||||
have fetched it.
|
||||
Complain about conflicts in the magic file entries.
|
||||
Make a rule that the magic entries sort based on file offset rather
|
||||
than position within the magic file?
|
||||
.PP
|
||||
The program should provide a way to give an estimate
|
||||
of ``how good'' a guess is.
|
||||
We end up removing guesses (e.g. ``From '' as first 5 chars of file) because
|
||||
they are not as good as other guesses (e.g. ``Newsgroups:'' versus
|
||||
``Return-Path:'').
|
||||
Still, if the others don't pan out, it should be
|
||||
possible to use the first guess.
|
||||
.PP
|
||||
This program is slower than some vendors' file commands.
|
||||
The new support for multiple character codes makes it even slower.
|
||||
.PP
|
||||
This manual page, and particularly this section, is too long.
|
||||
.SH AVAILABILITY
|
||||
You can obtain the original author's latest version by anonymous FTP
|
||||
on
|
||||
.B ftp.astron.com
|
||||
in the directory
|
||||
.I /pub/file/file-X.YY.tar.gz
|
|
@ -1,565 +0,0 @@
|
|||
/* $NetBSD: file.c,v 1.29 2003/01/06 20:30:40 wiz Exp $ */
|
||||
|
||||
/*
|
||||
* file - find type of a file or files - main program.
|
||||
*
|
||||
* Copyright (c) Ian F. Darwin, 1987.
|
||||
* Written by Ian F. Darwin.
|
||||
*
|
||||
* This software is not subject to any license of the American Telephone
|
||||
* and Telegraph Company or of the Regents of the University of California.
|
||||
*
|
||||
* Permission is granted to anyone to use this software for any purpose on
|
||||
* any computer system, and to alter it and redistribute it freely, subject
|
||||
* to the following restrictions:
|
||||
*
|
||||
* 1. The author is not responsible for the consequences of use of this
|
||||
* software, no matter how awful, even if they arise from flaws in it.
|
||||
*
|
||||
* 2. The origin of this software must not be misrepresented, either by
|
||||
* explicit claim or by omission. Since few users ever read sources,
|
||||
* credits must appear in the documentation.
|
||||
*
|
||||
* 3. Altered versions must be plainly marked as such, and must not be
|
||||
* misrepresented as being the original software. Since few users
|
||||
* ever read sources, credits must appear in the documentation.
|
||||
*
|
||||
* 4. This notice may not be removed or altered.
|
||||
*/
|
||||
|
||||
#include "file.h"
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <sys/param.h> /* for MAXPATHLEN */
|
||||
#include <fcntl.h> /* for open() */
|
||||
#ifdef RESTORE_TIME
|
||||
# if (__COHERENT__ >= 0x420)
|
||||
# include <sys/utime.h>
|
||||
# else
|
||||
# ifdef USE_UTIMES
|
||||
# include <sys/time.h>
|
||||
# else
|
||||
# include <utime.h>
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h> /* for read() */
|
||||
#endif
|
||||
#ifdef HAVE_LOCALE_H
|
||||
#include <locale.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_GETOPT_H
|
||||
#include <getopt.h> /* for long options (is this portable?)*/
|
||||
#endif
|
||||
|
||||
#include <netinet/in.h> /* for byte swapping */
|
||||
|
||||
#include "patchlevel.h"
|
||||
|
||||
#ifndef lint
|
||||
#if 0
|
||||
FILE_RCSID("@(#)Id: file.c,v 1.66 2002/07/03 19:00:41 christos Exp ")
|
||||
#else
|
||||
__RCSID("$NetBSD: file.c,v 1.29 2003/01/06 20:30:40 wiz Exp $");
|
||||
#endif
|
||||
#endif /* lint */
|
||||
|
||||
|
||||
#ifdef S_IFLNK
|
||||
# define USAGE "Usage: %s [-bciknsvzL] [-f namefile] [-m magicfiles] file...\n"
|
||||
#else
|
||||
# define USAGE "Usage: %s [-bciknsvz] [-f namefile] [-m magicfiles] file...\n"
|
||||
#endif
|
||||
|
||||
#ifdef __EMX__
|
||||
static char *apptypeName = NULL;
|
||||
int os2_apptype (const char *fn, char *buf, int nb);
|
||||
#endif /* __EMX__ */
|
||||
|
||||
#ifndef MAGIC
|
||||
# define MAGIC "/etc/magic"
|
||||
#endif
|
||||
|
||||
#ifndef MAXPATHLEN
|
||||
#define MAXPATHLEN 512
|
||||
#endif
|
||||
|
||||
int /* Global command-line options */
|
||||
debug = 0, /* debugging */
|
||||
lflag = 0, /* follow Symlinks (BSD only) */
|
||||
bflag = 0, /* brief output format */
|
||||
zflag = 0, /* follow (uncompress) compressed files */
|
||||
sflag = 0, /* read block special files */
|
||||
iflag = 0,
|
||||
nobuffer = 0, /* Do not buffer stdout */
|
||||
kflag = 0; /* Keep going after the first match */
|
||||
|
||||
int /* Misc globals */
|
||||
nmagic = 0; /* number of valid magic[]s */
|
||||
|
||||
struct magic *magic; /* array of magic entries */
|
||||
|
||||
const char *magicfile = 0; /* where the magic is */
|
||||
const char *default_magicfile = MAGIC;
|
||||
|
||||
char *progname; /* used throughout */
|
||||
int lineno; /* line number in the magic file */
|
||||
|
||||
|
||||
static void unwrap(char *fn);
|
||||
static void usage(void);
|
||||
#ifdef HAVE_GETOPT_H
|
||||
static void help(void);
|
||||
#endif
|
||||
#if 0
|
||||
static int byteconv4(int, int, int);
|
||||
static short byteconv2(int, int, int);
|
||||
#endif
|
||||
|
||||
int main(int, char *[]);
|
||||
|
||||
/*
|
||||
* main - parse arguments and handle options
|
||||
*/
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
int c;
|
||||
int action = 0, didsomefiles = 0, errflg = 0, ret = 0, app = 0;
|
||||
char *mime, *home, *usermagic;
|
||||
struct stat sb;
|
||||
#define OPTSTRING "bcdf:ikm:nsvzCL"
|
||||
#ifdef HAVE_GETOPT_H
|
||||
int longindex;
|
||||
static struct option long_options[] =
|
||||
{
|
||||
{"version", 0, 0, 'v'},
|
||||
{"help", 0, 0, 0},
|
||||
{"brief", 0, 0, 'b'},
|
||||
{"checking-printout", 0, 0, 'c'},
|
||||
{"debug", 0, 0, 'd'},
|
||||
{"files-from", 1, 0, 'f'},
|
||||
{"mime", 0, 0, 'i'},
|
||||
{"keep-going", 0, 0, 'k'},
|
||||
#ifdef S_IFLNK
|
||||
{"dereference", 0, 0, 'L'},
|
||||
#endif
|
||||
{"magic-file", 1, 0, 'm'},
|
||||
{"uncompress", 0, 0, 'z'},
|
||||
{"no-buffer", 0, 0, 'n'},
|
||||
{"special-files", 0, 0, 's'},
|
||||
{"compile", 0, 0, 'C'},
|
||||
{0, 0, 0, 0},
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef LC_CTYPE
|
||||
setlocale(LC_CTYPE, ""); /* makes islower etc work for other langs */
|
||||
#endif
|
||||
|
||||
#ifdef __EMX__
|
||||
/* sh-like wildcard expansion! Shouldn't hurt at least ... */
|
||||
_wildcard(&argc, &argv);
|
||||
#endif
|
||||
|
||||
if ((progname = strrchr(argv[0], '/')) != NULL)
|
||||
progname++;
|
||||
else
|
||||
progname = argv[0];
|
||||
|
||||
magicfile = default_magicfile;
|
||||
if ((usermagic = getenv("MAGIC")) != NULL)
|
||||
magicfile = usermagic;
|
||||
else
|
||||
if ((home = getenv("HOME")) != NULL) {
|
||||
if ((usermagic = malloc(strlen(home) + 8)) != NULL) {
|
||||
(void)strcpy(usermagic, home);
|
||||
(void)strcat(usermagic, "/.magic");
|
||||
if (stat(usermagic, &sb)<0)
|
||||
free(usermagic);
|
||||
else
|
||||
magicfile = usermagic;
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef HAVE_GETOPT_H
|
||||
while ((c = getopt(argc, argv, OPTSTRING)) != -1)
|
||||
#else
|
||||
while ((c = getopt_long(argc, argv, OPTSTRING, long_options,
|
||||
&longindex)) != -1)
|
||||
#endif
|
||||
switch (c) {
|
||||
#ifdef HAVE_GETOPT_H
|
||||
case 0 :
|
||||
if (longindex == 1)
|
||||
help();
|
||||
break;
|
||||
#endif
|
||||
case 'b':
|
||||
++bflag;
|
||||
break;
|
||||
case 'c':
|
||||
action = CHECK;
|
||||
break;
|
||||
case 'C':
|
||||
action = COMPILE;
|
||||
break;
|
||||
case 'd':
|
||||
++debug;
|
||||
break;
|
||||
case 'f':
|
||||
if (!app) {
|
||||
ret = apprentice(magicfile, action);
|
||||
if (action)
|
||||
exit(ret);
|
||||
app = 1;
|
||||
}
|
||||
unwrap(optarg);
|
||||
++didsomefiles;
|
||||
break;
|
||||
case 'i':
|
||||
iflag++;
|
||||
if ((mime = malloc(strlen(magicfile) + 6)) != NULL) {
|
||||
(void)strcpy(mime, magicfile);
|
||||
(void)strcat(mime, ".mime");
|
||||
magicfile = mime;
|
||||
}
|
||||
break;
|
||||
case 'k':
|
||||
kflag = 1;
|
||||
break;
|
||||
case 'm':
|
||||
magicfile = optarg;
|
||||
break;
|
||||
case 'n':
|
||||
++nobuffer;
|
||||
break;
|
||||
case 's':
|
||||
sflag++;
|
||||
break;
|
||||
case 'v':
|
||||
(void) fprintf(stdout, "%s-%d.%d\n", progname,
|
||||
FILE_VERSION_MAJOR, patchlevel);
|
||||
(void) fprintf(stdout, "magic file from %s\n",
|
||||
magicfile);
|
||||
return 1;
|
||||
case 'z':
|
||||
zflag++;
|
||||
break;
|
||||
#ifdef S_IFLNK
|
||||
case 'L':
|
||||
++lflag;
|
||||
break;
|
||||
#endif
|
||||
case '?':
|
||||
default:
|
||||
errflg++;
|
||||
break;
|
||||
}
|
||||
|
||||
if (errflg) {
|
||||
usage();
|
||||
}
|
||||
|
||||
if (!app) {
|
||||
ret = apprentice(magicfile, action);
|
||||
if (action)
|
||||
exit(ret);
|
||||
app = 1;
|
||||
}
|
||||
|
||||
if (optind == argc) {
|
||||
if (!didsomefiles) {
|
||||
usage();
|
||||
}
|
||||
}
|
||||
else {
|
||||
int i, wid, nw;
|
||||
for (wid = 0, i = optind; i < argc; i++) {
|
||||
nw = strlen(argv[i]);
|
||||
if (nw > wid)
|
||||
wid = nw;
|
||||
}
|
||||
for (; optind < argc; optind++)
|
||||
process(argv[optind], wid);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* unwrap -- read a file of filenames, do each one.
|
||||
*/
|
||||
static void
|
||||
unwrap(char *fn)
|
||||
{
|
||||
char buf[MAXPATHLEN];
|
||||
FILE *f;
|
||||
int wid = 0, cwid;
|
||||
|
||||
if (strcmp("-", fn) == 0) {
|
||||
f = stdin;
|
||||
wid = 1;
|
||||
} else {
|
||||
if ((f = fopen(fn, "r")) == NULL) {
|
||||
error("Cannot open `%s' (%s).\n", fn, strerror(errno));
|
||||
/*NOTREACHED*/
|
||||
}
|
||||
|
||||
while (fgets(buf, MAXPATHLEN, f) != NULL) {
|
||||
cwid = strlen(buf) - 1;
|
||||
if (cwid > wid)
|
||||
wid = cwid;
|
||||
}
|
||||
|
||||
rewind(f);
|
||||
}
|
||||
|
||||
while (fgets(buf, MAXPATHLEN, f) != NULL) {
|
||||
buf[strlen(buf)-1] = '\0';
|
||||
process(buf, wid);
|
||||
if(nobuffer)
|
||||
(void) fflush(stdout);
|
||||
}
|
||||
|
||||
(void) fclose(f);
|
||||
}
|
||||
|
||||
|
||||
#if 0
|
||||
/*
|
||||
* byteconv4
|
||||
* Input:
|
||||
* from 4 byte quantity to convert
|
||||
* same whether to perform byte swapping
|
||||
* big_endian whether we are a big endian host
|
||||
*/
|
||||
static int
|
||||
byteconv4(int from, int same, int big_endian)
|
||||
{
|
||||
if (same)
|
||||
return from;
|
||||
else if (big_endian) { /* lsb -> msb conversion on msb */
|
||||
union {
|
||||
int i;
|
||||
char c[4];
|
||||
} retval, tmpval;
|
||||
|
||||
tmpval.i = from;
|
||||
retval.c[0] = tmpval.c[3];
|
||||
retval.c[1] = tmpval.c[2];
|
||||
retval.c[2] = tmpval.c[1];
|
||||
retval.c[3] = tmpval.c[0];
|
||||
|
||||
return retval.i;
|
||||
}
|
||||
else
|
||||
return ntohl(from); /* msb -> lsb conversion on lsb */
|
||||
}
|
||||
|
||||
/*
|
||||
* byteconv2
|
||||
* Same as byteconv4, but for shorts
|
||||
*/
|
||||
static short
|
||||
byteconv2(int from, int same, int big_endian)
|
||||
{
|
||||
if (same)
|
||||
return from;
|
||||
else if (big_endian) { /* lsb -> msb conversion on msb */
|
||||
union {
|
||||
short s;
|
||||
char c[2];
|
||||
} retval, tmpval;
|
||||
|
||||
tmpval.s = (short) from;
|
||||
retval.c[0] = tmpval.c[1];
|
||||
retval.c[1] = tmpval.c[0];
|
||||
|
||||
return retval.s;
|
||||
}
|
||||
else
|
||||
return ntohs(from); /* msb -> lsb conversion on lsb */
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* process - process input file
|
||||
*/
|
||||
void
|
||||
process(const char *inname, int wid)
|
||||
{
|
||||
int fd = 0;
|
||||
static const char stdname[] = "standard input";
|
||||
unsigned char buf[HOWMANY+1]; /* one extra for terminating '\0' */
|
||||
struct stat sb;
|
||||
int nbytes = 0; /* number of bytes read from a datafile */
|
||||
char match = '\0';
|
||||
|
||||
if (strcmp("-", inname) == 0) {
|
||||
if (fstat(0, &sb)<0) {
|
||||
error("cannot fstat `%s' (%s).\n", stdname,
|
||||
strerror(errno));
|
||||
/*NOTREACHED*/
|
||||
}
|
||||
inname = stdname;
|
||||
}
|
||||
|
||||
if (wid > 0 && !bflag)
|
||||
(void) printf("%s:%*s ", inname,
|
||||
(int) (wid - strlen(inname)), "");
|
||||
|
||||
if (inname != stdname) {
|
||||
/*
|
||||
* first try judging the file based on its filesystem status
|
||||
*/
|
||||
if (fsmagic(inname, &sb) != 0) {
|
||||
putchar('\n');
|
||||
return;
|
||||
}
|
||||
|
||||
if ((fd = open(inname, O_RDONLY)) < 0) {
|
||||
/* We can't open it, but we were able to stat it. */
|
||||
if (sb.st_mode & 0002) ckfputs("writable, ", stdout);
|
||||
if (sb.st_mode & 0111) ckfputs("executable, ", stdout);
|
||||
ckfprintf(stdout, "can't read `%s' (%s).\n",
|
||||
inname, strerror(errno));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* try looking at the first HOWMANY bytes
|
||||
*/
|
||||
if ((nbytes = read(fd, (char *)buf, HOWMANY)) == -1) {
|
||||
error("read failed (%s).\n", strerror(errno));
|
||||
/*NOTREACHED*/
|
||||
}
|
||||
|
||||
if (nbytes == 0)
|
||||
ckfputs(iflag ? "application/x-empty" : "empty", stdout);
|
||||
else {
|
||||
buf[nbytes++] = '\0'; /* null-terminate it */
|
||||
match = tryit(inname, buf, nbytes, zflag);
|
||||
}
|
||||
|
||||
#ifdef BUILTIN_ELF
|
||||
if (match == 's' && nbytes > 5) {
|
||||
/*
|
||||
* We matched something in the file, so this *might*
|
||||
* be an ELF file, and the file is at least 5 bytes long,
|
||||
* so if it's an ELF file it has at least one byte
|
||||
* past the ELF magic number - try extracting information
|
||||
* from the ELF headers that can't easily be extracted
|
||||
* with rules in the magic file.
|
||||
*/
|
||||
tryelf(fd, buf, nbytes);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (inname != stdname) {
|
||||
#ifdef RESTORE_TIME
|
||||
/*
|
||||
* Try to restore access, modification times if read it.
|
||||
* This is really *bad* because it will modify the status
|
||||
* time of the file... And of course this will affect
|
||||
* backup programs
|
||||
*/
|
||||
# ifdef USE_UTIMES
|
||||
struct timeval utsbuf[2];
|
||||
utsbuf[0].tv_sec = sb.st_atime;
|
||||
utsbuf[1].tv_sec = sb.st_mtime;
|
||||
|
||||
(void) utimes(inname, utsbuf); /* don't care if loses */
|
||||
# else
|
||||
struct utimbuf utbuf;
|
||||
|
||||
utbuf.actime = sb.st_atime;
|
||||
utbuf.modtime = sb.st_mtime;
|
||||
(void) utime(inname, &utbuf); /* don't care if loses */
|
||||
# endif
|
||||
#endif
|
||||
(void) close(fd);
|
||||
}
|
||||
(void) putchar('\n');
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
tryit(const char *fn, unsigned char *buf, int nb, int zfl)
|
||||
{
|
||||
|
||||
/*
|
||||
* The main work is done here!
|
||||
* We have the file name and/or the data buffer to be identified.
|
||||
*/
|
||||
|
||||
#ifdef __EMX__
|
||||
/*
|
||||
* Ok, here's the right place to add a call to some os-specific
|
||||
* routine, e.g.
|
||||
*/
|
||||
if (os2_apptype(fn, buf, nb) == 1)
|
||||
return 'o';
|
||||
#endif
|
||||
/* try compression stuff */
|
||||
if (zfl && zmagic(fn, buf, nb))
|
||||
return 'z';
|
||||
|
||||
/* try tests in /etc/magic (or surrogate magic file) */
|
||||
if (softmagic(buf, nb))
|
||||
return 's';
|
||||
|
||||
/* try known keywords, check whether it is ASCII */
|
||||
if (ascmagic(buf, nb))
|
||||
return 'a';
|
||||
|
||||
/* abandon hope, all ye who remain here */
|
||||
ckfputs(iflag ? "application/octet-stream" : "data", stdout);
|
||||
return '\0';
|
||||
}
|
||||
|
||||
static void
|
||||
usage(void)
|
||||
{
|
||||
(void)fprintf(stderr, USAGE, progname);
|
||||
(void)fprintf(stderr, "Usage: %s -C [-m magic]\n", progname);
|
||||
#ifdef HAVE_GETOPT_H
|
||||
(void)fputs("Try `file --help' for more information.\n", stderr);
|
||||
#endif
|
||||
exit(1);
|
||||
}
|
||||
|
||||
#ifdef HAVE_GETOPT_H
|
||||
static void
|
||||
help(void)
|
||||
{
|
||||
puts(
|
||||
"Usage: file [OPTION]... [FILE]...\n"
|
||||
"Determine file type of FILEs.\n"
|
||||
"\n"
|
||||
" -m, --magic-file LIST use LIST as a colon-separated list of magic\n"
|
||||
" number files\n"
|
||||
" -z, --uncompress try to look inside compressed files\n"
|
||||
" -b, --brief do not prepend filenames to output lines\n"
|
||||
" -c, --checking-printout print the parsed form of the magic file, use in\n"
|
||||
" conjunction with -m to debug a new magic file\n"
|
||||
" before installing it\n"
|
||||
" -f, --files-from FILE read the filenames to be examined from FILE\n"
|
||||
" -i, --mime output mime type strings\n"
|
||||
" -k, --keep-going don't stop at the first match\n"
|
||||
" -L, --dereference causes symlinks to be followed\n"
|
||||
" -n, --no-buffer do not buffer output\n"
|
||||
" -s, --special-files treat special (block/char devices) files as\n"
|
||||
" ordinary ones\n"
|
||||
" --help display this help and exit\n"
|
||||
" --version output version information and exit\n"
|
||||
);
|
||||
exit(0);
|
||||
}
|
||||
#endif
|
|
@ -1,193 +0,0 @@
|
|||
/* $NetBSD: file.h,v 1.29 2002/07/10 16:15:54 pooka Exp $ */
|
||||
|
||||
/*
|
||||
* file.h - definitions for file(1) program
|
||||
* @(#)Id: file.h,v 1.43 2002/07/03 18:57:52 christos Exp
|
||||
*
|
||||
* Copyright (c) Ian F. Darwin, 1987.
|
||||
* Written by Ian F. Darwin.
|
||||
*
|
||||
* This software is not subject to any license of the American Telephone
|
||||
* and Telegraph Company or of the Regents of the University of California.
|
||||
*
|
||||
* Permission is granted to anyone to use this software for any purpose on
|
||||
* any computer system, and to alter it and redistribute it freely, subject
|
||||
* to the following restrictions:
|
||||
*
|
||||
* 1. The author is not responsible for the consequences of use of this
|
||||
* software, no matter how awful, even if they arise from flaws in it.
|
||||
*
|
||||
* 2. The origin of this software must not be misrepresented, either by
|
||||
* explicit claim or by omission. Since few users ever read sources,
|
||||
* credits must appear in the documentation.
|
||||
*
|
||||
* 3. Altered versions must be plainly marked as such, and must not be
|
||||
* misrepresented as being the original software. Since few users
|
||||
* ever read sources, credits must appear in the documentation.
|
||||
*
|
||||
* 4. This notice may not be removed or altered.
|
||||
*/
|
||||
|
||||
#ifndef __file_h__
|
||||
#define __file_h__
|
||||
|
||||
#ifndef __linux__
|
||||
#define _LARGEFILE_SOURCE
|
||||
#define _LARGEFILE64_SOURCE
|
||||
#define _FILE_OFFSET_BITS 64
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#ifdef HAVE_STDINT_H
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
/* Do this here and now, because struct stat gets re-defined on solaris */
|
||||
#include <sys/stat.h>
|
||||
|
||||
#ifndef HOWMANY
|
||||
# define HOWMANY 65536 /* how much of the file to look at */
|
||||
#endif
|
||||
#define MAXMAGIS 4096 /* max entries in /etc/magic */
|
||||
#define MAXDESC 50 /* max leng of text description */
|
||||
#define MAXstring 32 /* max leng of "string" types */
|
||||
|
||||
#define MAGICNO 0xF11E041C
|
||||
#define VERSIONNO 1
|
||||
|
||||
#define CHECK 1
|
||||
#define COMPILE 2
|
||||
|
||||
struct magic {
|
||||
uint16_t cont_level; /* level of ">" */
|
||||
uint8_t nospflag; /* supress space character */
|
||||
uint8_t flag;
|
||||
#define INDIR 1 /* if '>(...)' appears, */
|
||||
#define UNSIGNED 2 /* comparison is unsigned */
|
||||
#define OFFADD 4 /* if '>&' appears, */
|
||||
uint8_t reln; /* relation (0=eq, '>'=gt, etc) */
|
||||
uint8_t vallen; /* length of string value, if any */
|
||||
uint8_t type; /* int, short, long or string. */
|
||||
uint8_t in_type; /* type of indirrection */
|
||||
#define BYTE 1
|
||||
#define SHORT 2
|
||||
#define LONG 4
|
||||
#define STRING 5
|
||||
#define DATE 6
|
||||
#define BESHORT 7
|
||||
#define BELONG 8
|
||||
#define BEDATE 9
|
||||
#define LESHORT 10
|
||||
#define LELONG 11
|
||||
#define LEDATE 12
|
||||
#define PSTRING 13
|
||||
#define LDATE 14
|
||||
#define BELDATE 15
|
||||
#define LELDATE 16
|
||||
#define REGEX 17
|
||||
uint8_t in_op; /* operator for indirection */
|
||||
uint8_t mask_op; /* operator for mask */
|
||||
#define OPAND 1
|
||||
#define OPOR 2
|
||||
#define OPXOR 3
|
||||
#define OPADD 4
|
||||
#define OPMINUS 5
|
||||
#define OPMULTIPLY 6
|
||||
#define OPDIVIDE 7
|
||||
#define OPMODULO 8
|
||||
#define OPINVERSE 0x80
|
||||
int32_t offset; /* offset to magic number */
|
||||
int32_t in_offset; /* offset from indirection */
|
||||
union VALUETYPE {
|
||||
uint8_t b;
|
||||
uint16_t h;
|
||||
uint32_t l;
|
||||
char s[MAXstring];
|
||||
char *buf;
|
||||
uint8_t hs[2]; /* 2 bytes of a fixed-endian "short" */
|
||||
uint8_t hl[4]; /* 4 bytes of a fixed-endian "long" */
|
||||
} value; /* either number or string */
|
||||
uint32_t mask; /* mask before comparison with value */
|
||||
char desc[MAXDESC]; /* description */
|
||||
} __attribute__((__packed__));
|
||||
|
||||
#define BIT(A) (1 << (A))
|
||||
#define STRING_IGNORE_LOWERCASE BIT(0)
|
||||
#define STRING_COMPACT_BLANK BIT(1)
|
||||
#define STRING_COMPACT_OPTIONAL_BLANK BIT(2)
|
||||
#define CHAR_IGNORE_LOWERCASE 'c'
|
||||
#define CHAR_COMPACT_BLANK 'B'
|
||||
#define CHAR_COMPACT_OPTIONAL_BLANK 'b'
|
||||
|
||||
|
||||
/* list of magic entries */
|
||||
struct mlist {
|
||||
struct magic *magic; /* array of magic entries */
|
||||
uint32_t nmagic; /* number of entries in array */
|
||||
struct mlist *next, *prev;
|
||||
};
|
||||
|
||||
extern int apprentice(const char *, int);
|
||||
extern int ascmagic(unsigned char *, int);
|
||||
extern void error(const char *, ...);
|
||||
extern void ckfputs(const char *, FILE *);
|
||||
struct stat;
|
||||
extern int fsmagic(const char *, struct stat *);
|
||||
extern char *fmttime(long, int);
|
||||
extern int is_compress(const unsigned char *, int *);
|
||||
extern int is_tar(unsigned char *, int);
|
||||
extern void magwarn(const char *, ...);
|
||||
extern void mdump(struct magic *);
|
||||
extern void process(const char *, int);
|
||||
extern void showstr(FILE *, const char *, int);
|
||||
extern int softmagic(unsigned char *, int);
|
||||
extern int tryit(const char *, unsigned char *, int, int);
|
||||
extern int zmagic(const char *, unsigned char *, int);
|
||||
extern void ckfprintf(FILE *, const char *, ...);
|
||||
extern uint32_t signextend(struct magic *, unsigned int32);
|
||||
extern void tryelf(int, unsigned char *, int);
|
||||
extern int pipe2file(int, void *, size_t);
|
||||
|
||||
|
||||
extern char *progname; /* the program name */
|
||||
extern const char *magicfile; /* name of the magic file */
|
||||
extern int lineno; /* current line number in magic file */
|
||||
|
||||
extern struct mlist mlist; /* list of arrays of magic entries */
|
||||
|
||||
extern int debug; /* enable debugging? */
|
||||
extern int zflag; /* process compressed files? */
|
||||
extern int lflag; /* follow symbolic links? */
|
||||
extern int sflag; /* read/analyze block special files? */
|
||||
extern int iflag; /* Output types as mime-types */
|
||||
|
||||
#ifdef NEED_GETOPT
|
||||
extern int optind; /* From getopt(3) */
|
||||
extern char *optarg;
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_STRERROR
|
||||
extern int sys_nerr;
|
||||
extern char *sys_errlist[];
|
||||
#define strerror(e) \
|
||||
(((e) >= 0 && (e) < sys_nerr) ? sys_errlist[(e)] : "Unknown error")
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_STRTOUL
|
||||
#define strtoul(a, b, c) strtol(a, b, c)
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_MMAP) && defined(HAVE_SYS_MMAN_H) && !defined(QUICK)
|
||||
#define QUICK
|
||||
#endif
|
||||
|
||||
#define FILE_RCSID(id) \
|
||||
static const char *rcsid(const char *p) { \
|
||||
return rcsid(p = id); \
|
||||
}
|
||||
|
||||
#endif /* __file_h__ */
|
|
@ -1,398 +0,0 @@
|
|||
#!/usr/pkg/bin/perl
|
||||
#
|
||||
# $NetBSD: file2netbsd,v 1.13 2002/07/09 15:01:36 pooka Exp $
|
||||
#
|
||||
# Perl script to convert a standard distribution directory for file into
|
||||
# a NetBSD source tree.
|
||||
#
|
||||
# This is done as a script so that as each distribution is released,
|
||||
# only changes from the previous one need to be dealt with as
|
||||
# modifications to this script and related files. This should
|
||||
# reduce the cost of updating from a new release of file by an
|
||||
# order of magnitude (or more?)
|
||||
#
|
||||
# This script requires two environment variables set:
|
||||
# SRCDIR - file source directory
|
||||
# TARGETDIR - name of the high level directory to make
|
||||
#
|
||||
# Written by Christos Zoulas July 17, 1997 for file-3.26
|
||||
#
|
||||
|
||||
$version = "3.39";
|
||||
|
||||
# definitions ...
|
||||
|
||||
@subdirs = ("usr.bin/file", "usr.bin/file/magdir");
|
||||
|
||||
|
||||
@filef = ("LEGAL.NOTICE", "MAINT",
|
||||
"README", "apprentice.c", "ascmagic.c",
|
||||
"compress.c", "file.c", "file.h", "fsmagic.c",
|
||||
"is_tar.c", "names.h", "patchlevel.h",
|
||||
"print.c", "readelf.c", "readelf.h", "softmagic.c", "tar.h");
|
||||
#
|
||||
# Utility Subroutines
|
||||
#
|
||||
|
||||
sub makedir {
|
||||
system("mkdir -p @_");
|
||||
}
|
||||
|
||||
# &fixrcs (fromfile, tofile);
|
||||
sub fixrcs
|
||||
{
|
||||
my ($f, $t) = @_;
|
||||
my @keywords = ("Author", "Date", "Header", "Id", "Locker", "Log",
|
||||
"Name", "RCSfile", "Revision", "Source", "State");
|
||||
my %mansubst = ('__CSECTION__', '1',
|
||||
'__FSECTION__', '5',
|
||||
'__VERSION__', $version,
|
||||
'__MAGIC__', '/usr/share/misc/magic');
|
||||
my $state = 0;
|
||||
my $hdr = 0;
|
||||
|
||||
open(IFILE, "<$f") || die "Cannot open $f";
|
||||
open(OFILE, ">$t") || die "Cannot create $t";
|
||||
|
||||
if ($t =~ /.*\.[0-9]/) {
|
||||
print OFILE '.\\" $', 'NetBSD', '$', "\n", '.\\"', "\n";
|
||||
}
|
||||
elsif ($t =~ /.*\.[ch]/) {
|
||||
print OFILE "/*\t", '$', 'NetBSD', '$', "\t*/\n\n";
|
||||
}
|
||||
elsif ($t =~ /.*\.[yl]/) {
|
||||
$hdr = 1;
|
||||
}
|
||||
else {
|
||||
print OFILE '$', 'NetBSD', '$', "\n";
|
||||
}
|
||||
while (<IFILE>) {
|
||||
if ($hdr == 1) {
|
||||
if (/%{/) {
|
||||
print OFILE "%{\n/*\t", '$', 'NetBSD', '$', "\t*/\n\n";
|
||||
$hdr = 0;
|
||||
next;
|
||||
}
|
||||
}
|
||||
if ($state == 2) {
|
||||
if (/#endif/) {
|
||||
print OFILE "#else\n__RCSID(", '"$', 'NetBSD', '$"',
|
||||
");\n#endif\n";
|
||||
$state = 0;
|
||||
}
|
||||
}
|
||||
if ($state == 1) {
|
||||
print OFILE "#if 0\n";
|
||||
$state = 2;
|
||||
}
|
||||
if (/#ifndef lint/) {
|
||||
print OFILE "#include <sys/cdefs.h>\n";
|
||||
$state = 1;
|
||||
}
|
||||
foreach $key (@keywords) {
|
||||
s/\$$key\$/$key/g;
|
||||
s/\$$key:(.*)\$/$key:$1/g;
|
||||
}
|
||||
while (($from, $to) = each %mansubst) {
|
||||
s/$from/$to/g;
|
||||
}
|
||||
print OFILE $_;
|
||||
}
|
||||
close(IFILE) || die "closing input file";
|
||||
close(OFILE) || die "closing output file";
|
||||
}
|
||||
|
||||
# ©files (fromdir, todir, list of files);
|
||||
sub copyfiles {
|
||||
local ($fdir, $tdir, @list) = @_;
|
||||
local ($f);
|
||||
|
||||
foreach $f (@list) {
|
||||
print " $fdir/$f --> $tdir/$f\n";
|
||||
&fixrcs("$fdir/$f", "$tdir/$f");
|
||||
}
|
||||
}
|
||||
|
||||
# ©file (fromfile, tofile);
|
||||
sub copyfile {
|
||||
local ($f, $t) = @_;
|
||||
|
||||
print " $f --> $t\n";
|
||||
&fixrcs("$f", "$t");
|
||||
}
|
||||
|
||||
sub uniq {
|
||||
local (@inlist) = @_;
|
||||
local (@outlist);
|
||||
|
||||
@outlist = ($inlist[0]);
|
||||
for ( $i=1; $i < @inlist; $i++ ) {
|
||||
if ($inlist[$i] ne $inlist[$i-1]) {
|
||||
push (@outlist, $inlist[$i]);
|
||||
}
|
||||
}
|
||||
|
||||
@outlist;
|
||||
}
|
||||
|
||||
sub dumpsrcs {
|
||||
local (@names) = @_;
|
||||
local ($count);
|
||||
|
||||
print ODATA "SRCS=\t";
|
||||
$count = 0;
|
||||
while ($f = pop(@names)) {
|
||||
print ODATA "$f ";
|
||||
if ($count == 5 && @names > 0) {
|
||||
print ODATA "\\\n";
|
||||
$count = 0;
|
||||
} else {
|
||||
$count += 1;
|
||||
}
|
||||
}
|
||||
if ($count != 0) {
|
||||
print ODATA "\n";
|
||||
}
|
||||
}
|
||||
|
||||
#
|
||||
# Main progarm.
|
||||
#
|
||||
|
||||
$srcdir = $ENV{'SRCDIR'};
|
||||
$targetdir = $ENV{'TARGETDIR'};
|
||||
$incdirs = "-I. -I$srcdir/config -I$srcdir";
|
||||
|
||||
if (!$srcdir | !targetdir) {
|
||||
die "You must define the environment variables SRCDIR and TARGETDIR.\n"
|
||||
}
|
||||
print "Making the NetBSD directory tree.\n";
|
||||
foreach $f (@subdirs) {
|
||||
print " -->$f\n";
|
||||
makedir ("$targetdir/$f");
|
||||
}
|
||||
|
||||
print "Populating the usr.bin/file directory.\n";
|
||||
©files ("$srcdir", "$targetdir/usr.bin/file", @filef);
|
||||
©file("$srcdir/file.man", "$targetdir/usr.bin/file/file.1");
|
||||
©file("$srcdir/magic.man", "$targetdir/usr.bin/file/magic.5");
|
||||
©file("$srcdir/magic.mime", "$targetdir/usr.bin/file/magic.mime.in");
|
||||
system("cat $srcdir/Header > $targetdir/usr.bin/file/Header");
|
||||
system("cat $srcdir/Localstuff > $targetdir/usr.bin/file/Localstuff");
|
||||
|
||||
print "Populating the usr.bin/file/magdir directory.\n";
|
||||
system("cp -rp $srcdir/Magdir/* $targetdir/usr.bin/file/magdir; chmod -R ug+w $targetdir/usr.bin/file/magdir");
|
||||
|
||||
#
|
||||
# Build makefiles
|
||||
#
|
||||
|
||||
$first = "True";
|
||||
while ($line = <DATA>) {
|
||||
chop ($line);
|
||||
if (substr($line,0,2) eq "%%") {
|
||||
@cmd = split (/ /,$line);
|
||||
if ($cmd[1] eq "file") {
|
||||
print "Building $targetdir/$cmd[2]\n";
|
||||
if ($first eq "") {
|
||||
close (ODATA);
|
||||
} else {
|
||||
$first = "";
|
||||
}
|
||||
open (ODATA, ">$targetdir/$cmd[2]") ||
|
||||
die "Could not create $targetdir/$cmd[2]";
|
||||
} elsif ($cmd[1] eq "srcs") {
|
||||
print " Defining SRCS for $cmd[2]\n";
|
||||
if ($first) {
|
||||
die "Data file must start with a %% file!";
|
||||
}
|
||||
} elsif ($cmd[1] eq "NetBSD") {
|
||||
if ($first) {
|
||||
die "Data section must start with a %% file!";
|
||||
}
|
||||
print ODATA "$cmd[2] \$"."NetBSD".": \$\n";
|
||||
}
|
||||
} else {
|
||||
if ($first) {
|
||||
die "Data file must start with a %% file!";
|
||||
}
|
||||
print ODATA "$line\n";
|
||||
}
|
||||
}
|
||||
close (ODATA);
|
||||
|
||||
#
|
||||
# Sed transformations of files
|
||||
#
|
||||
|
||||
foreach $n (keys(%sedlist)) {
|
||||
print "Modifying $n\n";
|
||||
system ("cd $targetdir; sed $sedlist{$n} $n > tmp; mv -f tmp $n");
|
||||
}
|
||||
|
||||
#
|
||||
# end of the script
|
||||
#
|
||||
|
||||
# what follows is the data for makefiles and other special files
|
||||
# that need to be created.
|
||||
|
||||
__END__
|
||||
%% file usr.bin/file/Makefile
|
||||
%% NetBSD #
|
||||
|
||||
.include <bsd.own.mk>
|
||||
|
||||
MFILESDIR= /usr/share/misc
|
||||
MFILES= magic magic.mime
|
||||
MAGIC= ${MFILESDIR}/magic
|
||||
.if ${MKSHARE} != "no"
|
||||
FILESDIR= ${MFILESDIR}
|
||||
FILES= ${MFILES}
|
||||
.endif
|
||||
|
||||
PROG= file
|
||||
SRCS= file.c apprentice.c fsmagic.c softmagic.c ascmagic.c is_tar.c \
|
||||
print.c compress.c readelf.c
|
||||
CPPFLAGS+= -DMAGIC='"$(MAGIC)"' -DHAVE_CONFIG_H -I${.CURDIR}
|
||||
CPPFLAGS+= -DBUILTIN_ELF -DELFCORE
|
||||
MAN= file.1 magic.5
|
||||
|
||||
CLEANFILES+= magic
|
||||
all: file magic
|
||||
|
||||
MAGDIRF:sh= echo $(.CURDIR)/magdir/[0-9a-z]*
|
||||
MAGFILES= $(.CURDIR)/Header \
|
||||
$(.CURDIR)/Localstuff \
|
||||
$(.CURDIR)/magdir/netbsd \
|
||||
${MAGDIRF}
|
||||
|
||||
.if ${MKSHARE} != "no"
|
||||
magic: $(MAGFILES)
|
||||
cat $(MAGFILES) > $(.TARGET)
|
||||
.else
|
||||
magic:
|
||||
.endif
|
||||
|
||||
.include <bsd.prog.mk>
|
||||
%% file usr.bin/file/config.h
|
||||
/* config.h. Generated automatically by configure. */
|
||||
/* config.h.in. Generated automatically from configure.in by autoheader. */
|
||||
|
||||
/* Define to empty if the keyword does not work. */
|
||||
/* #undef const */
|
||||
|
||||
/* Define if your struct stat has st_rdev. */
|
||||
#define HAVE_ST_RDEV 1
|
||||
|
||||
/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
|
||||
#define HAVE_SYS_WAIT_H 1
|
||||
|
||||
/* Define if major, minor, and makedev are declared in <mkdev.h>. */
|
||||
/* #undef MAJOR_IN_MKDEV */
|
||||
|
||||
/* Define if major, minor, and makedev are declared in <sysmacros.h>. */
|
||||
/* #undef MAJOR_IN_SYSMACROS */
|
||||
|
||||
/* Define to `long' if <sys/types.h> doesn't define. */
|
||||
/* #undef off_t */
|
||||
|
||||
/* Define to `unsigned' if <sys/types.h> doesn't define. */
|
||||
/* #undef size_t */
|
||||
|
||||
/* Define if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
|
||||
/* Define if your <sys/time.h> declares struct tm. */
|
||||
/* #undef TM_IN_SYS_TIME */
|
||||
|
||||
/* Define if builtin ELF support is enabled. */
|
||||
#define BUILTIN_ELF 1
|
||||
|
||||
/* Define if ELF core file support is enabled. */
|
||||
#define ELFCORE 1
|
||||
|
||||
/* Define if the `long long' type works. */
|
||||
#define HAVE_LONG_LONG 1
|
||||
|
||||
/* Define if we have "tm_isdst" in "struct tm". */
|
||||
#define HAVE_TM_ISDST 1
|
||||
|
||||
/* Define if we have a global "int" variable "daylight". */
|
||||
#define HAVE_DAYLIGHT 1
|
||||
|
||||
/* Define to `unsigned char' if standard headers don't define. */
|
||||
/* #undef uint8_t */
|
||||
|
||||
/* Define to `unsigned short' if standard headers don't define. */
|
||||
/* #undef uint16_t */
|
||||
|
||||
/* Define to `unsigned int' if standard headers don't define. */
|
||||
/* #undef uint32_t */
|
||||
|
||||
/* Define to `unsigned long long', if available, or `unsigned long', if
|
||||
standard headers don't define. */
|
||||
/* #undef uint64_t */
|
||||
|
||||
/* The number of bytes in a uint8_t. */
|
||||
#define SIZEOF_UINT8_T 1
|
||||
|
||||
/* The number of bytes in a uint16_t. */
|
||||
#define SIZEOF_UINT16_T 2
|
||||
|
||||
/* The number of bytes in a uint32_t. */
|
||||
#define SIZEOF_UINT32_T 4
|
||||
|
||||
/* The number of bytes in a uint64_t. */
|
||||
#define SIZEOF_UINT64_T 8
|
||||
|
||||
/* Define if you have the mkstemp function. */
|
||||
#define HAVE_MKSTEMP 1
|
||||
|
||||
/* Define if you have the mmap function. */
|
||||
#define HAVE_MMAP 1
|
||||
|
||||
/* Define if you have the strerror function. */
|
||||
#define HAVE_STRERROR 1
|
||||
|
||||
/* Define if you have the strtoul function. */
|
||||
#define HAVE_STRTOUL 1
|
||||
|
||||
/* Define if you have the <fcntl.h> header file. */
|
||||
#define HAVE_FCNTL_H 1
|
||||
|
||||
/* Define if you have the <getopt.h> header file. */
|
||||
#define HAVE_GETOPT_H 1
|
||||
|
||||
/* Define if you have the <locale.h> header file. */
|
||||
#define HAVE_LOCALE_H 1
|
||||
|
||||
/* Define if you have the <stdint.h> header file. */
|
||||
#define HAVE_STDINT_H 1
|
||||
|
||||
/* Define if you have the <sys/mman.h> header file. */
|
||||
#define HAVE_SYS_MMAN_H 1
|
||||
|
||||
/* Define if you have the <sys/stat.h> header file. */
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
|
||||
/* Define if you have the <sys/types.h> header file. */
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
|
||||
/* Define if you have the <unistd.h> header file. */
|
||||
#define HAVE_UNISTD_H 1
|
||||
|
||||
/* Define if you have the z library (-lz). */
|
||||
#define HAVE_LIBZ 1
|
||||
|
||||
/* Name of package */
|
||||
#define PACKAGE "file"
|
||||
|
||||
/* Version number of package */
|
||||
#define VERSION "3.39"
|
||||
|
||||
/* HAVE_TM_ZONE */
|
||||
#define HAVE_TM_ZONE 1
|
||||
|
||||
/* HAVE_TZNAME */
|
||||
#define HAVE_TZNAME 1
|
|
@ -1,253 +0,0 @@
|
|||
/* $NetBSD: fsmagic.c,v 1.17 2002/07/09 14:59:54 pooka Exp $ */
|
||||
|
||||
/*
|
||||
* fsmagic - magic based on filesystem info - directory, special files, etc.
|
||||
*
|
||||
* Copyright (c) Ian F. Darwin, 1987.
|
||||
* Written by Ian F. Darwin.
|
||||
*
|
||||
* This software is not subject to any license of the American Telephone
|
||||
* and Telegraph Company or of the Regents of the University of California.
|
||||
*
|
||||
* Permission is granted to anyone to use this software for any purpose on
|
||||
* any computer system, and to alter it and redistribute it freely, subject
|
||||
* to the following restrictions:
|
||||
*
|
||||
* 1. The author is not responsible for the consequences of use of this
|
||||
* software, no matter how awful, even if they arise from flaws in it.
|
||||
*
|
||||
* 2. The origin of this software must not be misrepresented, either by
|
||||
* explicit claim or by omission. Since few users ever read sources,
|
||||
* credits must appear in the documentation.
|
||||
*
|
||||
* 3. Altered versions must be plainly marked as such, and must not be
|
||||
* misrepresented as being the original software. Since few users
|
||||
* ever read sources, credits must appear in the documentation.
|
||||
*
|
||||
* 4. This notice may not be removed or altered.
|
||||
*/
|
||||
|
||||
#include "file.h"
|
||||
#include <string.h>
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#include <stdlib.h>
|
||||
/* Since major is a function on SVR4, we can't use `ifndef major'. */
|
||||
#ifdef MAJOR_IN_MKDEV
|
||||
# include <sys/mkdev.h>
|
||||
# define HAVE_MAJOR
|
||||
#endif
|
||||
#ifdef MAJOR_IN_SYSMACROS
|
||||
# include <sys/sysmacros.h>
|
||||
# define HAVE_MAJOR
|
||||
#endif
|
||||
#ifdef major /* Might be defined in sys/types.h. */
|
||||
# define HAVE_MAJOR
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_MAJOR
|
||||
# define major(dev) (((dev) >> 8) & 0xff)
|
||||
# define minor(dev) ((dev) & 0xff)
|
||||
#endif
|
||||
#undef HAVE_MAJOR
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
FILE_RCSID("@(#)Id: fsmagic.c,v 1.36 2002/07/03 19:00:41 christos Exp ")
|
||||
#else
|
||||
__RCSID("$NetBSD: fsmagic.c,v 1.17 2002/07/09 14:59:54 pooka Exp $");
|
||||
#endif
|
||||
#endif /* lint */
|
||||
|
||||
int
|
||||
fsmagic(const char *fn, struct stat *sb)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
/*
|
||||
* Fstat is cheaper but fails for files you don't have read perms on.
|
||||
* On 4.2BSD and similar systems, use lstat() to identify symlinks.
|
||||
*/
|
||||
#ifdef S_IFLNK
|
||||
if (!lflag)
|
||||
ret = lstat(fn, sb);
|
||||
else
|
||||
#endif
|
||||
ret = stat(fn, sb); /* don't merge into if; see "ret =" above */
|
||||
|
||||
if (ret) {
|
||||
ckfprintf(stdout,
|
||||
/* Yes, I do mean stdout. */
|
||||
/* No \n, caller will provide. */
|
||||
"can't stat `%s' (%s).", fn, strerror(errno));
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (iflag) {
|
||||
if ((sb->st_mode & S_IFMT) != S_IFREG) {
|
||||
ckfputs("application/x-not-regular-file", stdout);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
#ifdef S_ISUID
|
||||
if (sb->st_mode & S_ISUID) ckfputs("setuid ", stdout);
|
||||
#endif
|
||||
#ifdef S_ISGID
|
||||
if (sb->st_mode & S_ISGID) ckfputs("setgid ", stdout);
|
||||
#endif
|
||||
#ifdef S_ISVTX
|
||||
if (sb->st_mode & S_ISVTX) ckfputs("sticky ", stdout);
|
||||
#endif
|
||||
}
|
||||
|
||||
switch (sb->st_mode & S_IFMT) {
|
||||
case S_IFDIR:
|
||||
ckfputs("directory", stdout);
|
||||
return 1;
|
||||
#ifdef S_IFCHR
|
||||
case S_IFCHR:
|
||||
/*
|
||||
* If -s has been specified, treat character special files
|
||||
* like ordinary files. Otherwise, just report that they
|
||||
* are block special files and go on to the next file.
|
||||
*/
|
||||
if (sflag)
|
||||
break;
|
||||
#ifdef HAVE_ST_RDEV
|
||||
# ifdef dv_unit
|
||||
(void) printf("character special (%d/%d/%d)",
|
||||
major(sb->st_rdev),
|
||||
dv_unit(sb->st_rdev),
|
||||
dv_subunit(sb->st_rdev));
|
||||
# else
|
||||
(void) printf("character special (%ld/%ld)",
|
||||
(long) major(sb->st_rdev), (long) minor(sb->st_rdev));
|
||||
# endif
|
||||
#else
|
||||
(void) printf("character special");
|
||||
#endif
|
||||
return 1;
|
||||
#endif
|
||||
#ifdef S_IFBLK
|
||||
case S_IFBLK:
|
||||
/*
|
||||
* If -s has been specified, treat block special files
|
||||
* like ordinary files. Otherwise, just report that they
|
||||
* are block special files and go on to the next file.
|
||||
*/
|
||||
if (sflag)
|
||||
break;
|
||||
#ifdef HAVE_ST_RDEV
|
||||
# ifdef dv_unit
|
||||
(void) printf("block special (%d/%d/%d)",
|
||||
major(sb->st_rdev),
|
||||
dv_unit(sb->st_rdev),
|
||||
dv_subunit(sb->st_rdev));
|
||||
# else
|
||||
(void) printf("block special (%ld/%ld)",
|
||||
(long) major(sb->st_rdev), (long) minor(sb->st_rdev));
|
||||
# endif
|
||||
#else
|
||||
(void) printf("block special");
|
||||
#endif
|
||||
return 1;
|
||||
#endif
|
||||
/* TODO add code to handle V7 MUX and Blit MUX files */
|
||||
#ifdef S_IFIFO
|
||||
case S_IFIFO:
|
||||
ckfputs("fifo (named pipe)", stdout);
|
||||
return 1;
|
||||
#endif
|
||||
#ifdef S_IFDOOR
|
||||
case S_IFDOOR:
|
||||
ckfputs("door", stdout);
|
||||
return 1;
|
||||
#endif
|
||||
#ifdef S_IFLNK
|
||||
case S_IFLNK:
|
||||
{
|
||||
char buf[BUFSIZ+4];
|
||||
int nch;
|
||||
struct stat tstatbuf;
|
||||
|
||||
if ((nch = readlink(fn, buf, BUFSIZ-1)) <= 0) {
|
||||
ckfprintf(stdout, "unreadable symlink (%s).",
|
||||
strerror(errno));
|
||||
return 1;
|
||||
}
|
||||
buf[nch] = '\0'; /* readlink(2) forgets this */
|
||||
|
||||
/* If broken symlink, say so and quit early. */
|
||||
if (*buf == '/') {
|
||||
if (stat(buf, &tstatbuf) < 0) {
|
||||
ckfprintf(stdout,
|
||||
"broken symbolic link to %s", buf);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
char *tmp;
|
||||
char buf2[BUFSIZ+BUFSIZ+4];
|
||||
|
||||
if ((tmp = strrchr(fn, '/')) == NULL) {
|
||||
tmp = buf; /* in current directory anyway */
|
||||
}
|
||||
else {
|
||||
strcpy (buf2, fn); /* take directory part */
|
||||
buf2[tmp-fn+1] = '\0';
|
||||
strcat (buf2, buf); /* plus (relative) symlink */
|
||||
tmp = buf2;
|
||||
}
|
||||
if (stat(tmp, &tstatbuf) < 0) {
|
||||
ckfprintf(stdout,
|
||||
"broken symbolic link to %s", buf);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* Otherwise, handle it. */
|
||||
if (lflag) {
|
||||
process(buf, strlen(buf));
|
||||
return 1;
|
||||
} else { /* just print what it points to */
|
||||
ckfputs("symbolic link to ", stdout);
|
||||
ckfputs(buf, stdout);
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
#endif
|
||||
#ifdef S_IFSOCK
|
||||
#ifndef __COHERENT__
|
||||
case S_IFSOCK:
|
||||
ckfputs("socket", stdout);
|
||||
return 1;
|
||||
#endif
|
||||
#endif
|
||||
case S_IFREG:
|
||||
break;
|
||||
default:
|
||||
error("invalid mode 0%o.\n", sb->st_mode);
|
||||
/*NOTREACHED*/
|
||||
}
|
||||
|
||||
/*
|
||||
* regular file, check next possibility
|
||||
*
|
||||
* If stat() tells us the file has zero length, report here that
|
||||
* the file is empty, so we can skip all the work of opening and
|
||||
* reading the file.
|
||||
* But if the -s option has been given, we skip this optimization,
|
||||
* since on some systems, stat() reports zero size for raw disk
|
||||
* partitions. (If the block special device really has zero length,
|
||||
* the fact that it is empty will be detected and reported correctly
|
||||
* when we read the file.)
|
||||
*/
|
||||
if (!sflag && sb->st_size == 0) {
|
||||
ckfputs(iflag ? "application/x-empty" : "empty", stdout);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
|
@ -1,104 +0,0 @@
|
|||
/* $NetBSD: is_tar.c,v 1.16 2002/07/10 16:15:54 pooka Exp $ */
|
||||
|
||||
/*
|
||||
* is_tar() -- figure out whether file is a tar archive.
|
||||
*
|
||||
* Stolen (by the author!) from the public domain tar program:
|
||||
* Public Domain version written 26 Aug 1985 John Gilmore (ihnp4!hoptoad!gnu).
|
||||
*
|
||||
* @(#)list.c 1.18 9/23/86 Public Domain - gnu
|
||||
* Id: is_tar.c,v 1.17 2002/07/03 18:26:38 christos Exp
|
||||
*
|
||||
* Comments changed and some code/comments reformatted
|
||||
* for file command by Ian Darwin.
|
||||
*/
|
||||
|
||||
#include "file.h"
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#include <sys/types.h>
|
||||
#include "tar.h"
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
FILE_RCSID("@(#)Id: is_tar.c,v 1.17 2002/07/03 18:26:38 christos Exp ")
|
||||
#else
|
||||
__RCSID("$NetBSD: is_tar.c,v 1.16 2002/07/10 16:15:54 pooka Exp $");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define isodigit(c) ( ((c) >= '0') && ((c) <= '7') )
|
||||
|
||||
static int from_oct(int, char *); /* Decode octal number */
|
||||
|
||||
/*
|
||||
* Return
|
||||
* 0 if the checksum is bad (i.e., probably not a tar archive),
|
||||
* 1 for old UNIX tar file,
|
||||
* 2 for Unix Std (POSIX) tar file.
|
||||
*/
|
||||
int
|
||||
is_tar(unsigned char *buf, int nbytes)
|
||||
{
|
||||
union record *header = (union record *)buf;
|
||||
int i;
|
||||
int sum, recsum;
|
||||
char *p;
|
||||
|
||||
if (nbytes < sizeof(union record))
|
||||
return 0;
|
||||
|
||||
recsum = from_oct(8, header->header.chksum);
|
||||
|
||||
sum = 0;
|
||||
p = header->charptr;
|
||||
for (i = sizeof(union record); --i >= 0;) {
|
||||
/*
|
||||
* We can't use unsigned char here because of old compilers,
|
||||
* e.g. V7.
|
||||
*/
|
||||
sum += 0xFF & *p++;
|
||||
}
|
||||
|
||||
/* Adjust checksum to count the "chksum" field as blanks. */
|
||||
for (i = sizeof(header->header.chksum); --i >= 0;)
|
||||
sum -= 0xFF & header->header.chksum[i];
|
||||
sum += ' '* sizeof header->header.chksum;
|
||||
|
||||
if (sum != recsum)
|
||||
return 0; /* Not a tar archive */
|
||||
|
||||
if (0==strcmp(header->header.magic, TMAGIC))
|
||||
return 2; /* Unix Standard tar archive */
|
||||
|
||||
return 1; /* Old fashioned tar archive */
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Quick and dirty octal conversion.
|
||||
*
|
||||
* Result is -1 if the field is invalid (all blank, or nonoctal).
|
||||
*/
|
||||
static int
|
||||
from_oct(int digs, char *where)
|
||||
{
|
||||
int value;
|
||||
|
||||
while (isspace((unsigned char)*where)) { /* Skip spaces */
|
||||
where++;
|
||||
if (--digs <= 0)
|
||||
return -1; /* All blank field */
|
||||
}
|
||||
value = 0;
|
||||
while (digs > 0 && isodigit(*where)) { /* Scan til nonoctal */
|
||||
value = (value << 3) | (*where++ - '0');
|
||||
--digs;
|
||||
}
|
||||
|
||||
if (digs > 0 && *where && !isspace((unsigned char)*where))
|
||||
return -1; /* Ended on non-space/nul */
|
||||
|
||||
return value;
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
#------------------------------------------------------------------------------
|
||||
# acorn: file(1) magic for files found on Acorn systems
|
||||
#
|
||||
|
||||
# RISC OS Chunk File Format
|
||||
# From RISC OS Programmer's Reference Manual, Appendix D
|
||||
# We guess the file type from the type of the first chunk.
|
||||
0 lelong 0xc3cbc6c5 RISC OS Chunk data
|
||||
>12 string OBJ_ \b, AOF object
|
||||
>12 string LIB_ \b, ALF library
|
||||
|
||||
# RISC OS AIF, contains "SWI OS_Exit" at offset 16.
|
||||
16 lelong 0xef000011 RISC OS AIF executable
|
||||
|
||||
# RISC OS Draw files
|
||||
# From RISC OS Programmer's Reference Manual, Appendix E
|
||||
0 string Draw RISC OS Draw file data
|
||||
|
||||
# RISC OS new format font files
|
||||
# From RISC OS Programmer's Reference Manual, Appendix E
|
||||
0 string FONT\0 RISC OS outline font data,
|
||||
>5 byte x version %d
|
||||
0 string FONT\1 RISC OS 1bpp font data,
|
||||
>5 byte x version %d
|
||||
0 string FONT\4 RISC OS 4bpp font data
|
||||
>5 byte x version %d
|
||||
|
||||
# RISC OS Music files
|
||||
# From RISC OS Programmer's Reference Manual, Appendix E
|
||||
0 string Maestro\r RISC OS music file
|
||||
>8 byte x version %d
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# adi: file(1) magic for ADi's objects
|
||||
# From Gregory McGarry <g.mcgarry@ieee.org>
|
||||
#
|
||||
0 leshort 0x521c COFF DSP21k
|
||||
>18 lelong &02 executable,
|
||||
>18 lelong ^02
|
||||
>>18 lelong &01 static object,
|
||||
>>18 lelong ^01 relocatable object,
|
||||
>18 lelong &010 stripped
|
||||
>18 lelong ^010 not stripped
|
|
@ -1,63 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# adventure: file(1) magic for Adventure game files
|
||||
#
|
||||
# from Allen Garvin <earendil@faeryland.tamu-commerce.edu>
|
||||
# Edited by Dave Chapeskie <dchapes@ddm.on.ca> Jun 28, 1998
|
||||
# Edited by Chris Chittleborough <cchittleborough@yahoo.com.au>, March 2002
|
||||
#
|
||||
# ALAN
|
||||
# I assume there are other, lower versions, but these are the only ones I
|
||||
# saw in the archive.
|
||||
0 beshort 0x0206 ALAN game data
|
||||
>2 byte <10 version 2.6%d
|
||||
|
||||
# Conflicts with too much other stuff!
|
||||
# Infocom
|
||||
# (Note: to avoid false matches Z-machine version 1 and 2 are not
|
||||
# recognized since only the oldest Zork I and II used them. Similarly
|
||||
# there are 4 Infocom games that use verion 4 that are not recognized.)
|
||||
#0 byte 3 Infocom game data (Z-machine 3,
|
||||
#>2 beshort <0x7fff Release %3d,
|
||||
#>26 beshort >0 Size %d*2
|
||||
#>18 string >\0 Serial %.6s)
|
||||
#0 byte 5 Infocom game data (Z-machine 5,
|
||||
#>2 beshort <0x7fff Release %3d,
|
||||
#>26 beshort >0 Size %d*4
|
||||
#>18 string >\0 Serial %.6s)
|
||||
#0 byte 6 Infocom game data (Z-machine 6,
|
||||
#>2 beshort <0x7fff Release %3d,
|
||||
#>26 beshort >0 Size %d*8
|
||||
#>18 string >\0 Serial %.6s)
|
||||
#0 byte 8 Infocom game data (Z-machine 8,
|
||||
#>2 beshort <0x7fff Release %3d,
|
||||
#>26 beshort >0 Size %d*8
|
||||
#>18 string >\0 Serial %.6s)
|
||||
|
||||
# TADS (Text Adventure Development System)
|
||||
# All files are machine-independent (games compile to byte-code) and are tagged
|
||||
# with a version string of the form "V2.<digit>.<digit>\0" (but TADS 3 is
|
||||
# on the way).
|
||||
# Game files start with "TADS2 bin\n\r\032\0" then the compiler version.
|
||||
0 string TADS2\ bin TADS
|
||||
>9 belong !0x0A0D1A00 game data, CORRUPTED
|
||||
>9 belong 0x0A0D1A00
|
||||
>>13 string >\0 %s game data
|
||||
# Resource files start with "TADS2 rsc\n\r\032\0" then the compiler version.
|
||||
0 string TADS2\ rsc TADS
|
||||
>9 belong !0x0A0D1A00 resource data, CORRUPTED
|
||||
>9 belong 0x0A0D1A00
|
||||
>>13 string >\0 %s resource data
|
||||
# Some saved game files start with "TADS2 save/g\n\r\032\0", a little-endian
|
||||
# 2-byte length N, the N-char name of the game file *without* a NUL (darn!),
|
||||
# "TADS2 save\n\r\032\0" and the interpreter version.
|
||||
0 string TADS2\ save/g TADS
|
||||
>12 belong !0x0A0D1A00 saved game data, CORRUPTED
|
||||
>12 belong 0x0A0D1A00
|
||||
>>(16.s+32) string >\0 %s saved game data
|
||||
# Other saved game files start with "TADS2 save\n\r\032\0" and the interpreter
|
||||
# version.
|
||||
0 string TADS2\ save TADS
|
||||
>10 belong !0x0A0D1A00 saved game data, CORRUPTED
|
||||
>10 belong 0x0A0D1A00
|
||||
>>14 string >\0 %s saved game data
|
|
@ -1,7 +0,0 @@
|
|||
#------------------------------------------------------------------------------
|
||||
# allegro: file(1) magic for Allegro datafiles
|
||||
# Toby Deshane <hac@shoelace.digivill.net>
|
||||
#
|
||||
0 belong 0x736C6821 Allegro datafile (packed)
|
||||
0 belong 0x736C682E Allegro datafile (not packed/autodetect)
|
||||
0 belong 0x736C682B Allegro datafile (appended exe data)
|
|
@ -1,17 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# alliant: file(1) magic for Alliant FX series a.out files
|
||||
#
|
||||
# If the FX series is the one that had a processor with a 68K-derived
|
||||
# instruction set, the "short" should probably become "beshort" and the
|
||||
# "long" should probably become "belong".
|
||||
# If it's the i860-based one, they should probably become either the
|
||||
# big-endian or little-endian versions, depending on the mode they ran
|
||||
# the 860 in....
|
||||
#
|
||||
0 short 0420 0420 Alliant virtual executable
|
||||
>2 short &0x0020 common library
|
||||
>16 long >0 not stripped
|
||||
0 short 0421 0421 Alliant compact executable
|
||||
>2 short &0x0020 common library
|
||||
>16 long >0 not stripped
|
|
@ -1,30 +0,0 @@
|
|||
#------------------------------------------------------------------------------
|
||||
# alpha architecture description
|
||||
#
|
||||
|
||||
0 leshort 0603 COFF format alpha
|
||||
>22 leshort&030000 !020000 executable
|
||||
>24 leshort 0410 pure
|
||||
>24 leshort 0413 paged
|
||||
>22 leshort&020000 !0 dynamically linked
|
||||
>16 lelong !0 not stripped
|
||||
>16 lelong 0 stripped
|
||||
>22 leshort&030000 020000 shared library
|
||||
>24 leshort 0407 object
|
||||
>27 byte x - version %d
|
||||
>26 byte x .%d
|
||||
>28 byte x -%d
|
||||
|
||||
# Basic recognition of Digital UNIX core dumps - Mike Bremford <mike@opac.bl.uk>
|
||||
#
|
||||
# The actual magic number is just "Core", followed by a 2-byte version
|
||||
# number; however, treating any file that begins with "Core" as a Digital
|
||||
# UNIX core dump file may produce too many false hits, so we include one
|
||||
# byte of the version number as well; DU 5.0 appears only to be up to
|
||||
# version 2.
|
||||
#
|
||||
0 string Core\001 Alpha COFF format core dump (Digital UNIX)
|
||||
>24 string >\0 \b, from '%s'
|
||||
0 string Core\002 Alpha COFF format core dump (Digital UNIX)
|
||||
>24 string >\0 \b, from '%s'
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
#------------------------------------------------------------------------------
|
||||
# amanda: file(1) magic for amanda file format
|
||||
#
|
||||
0 string AMANDA:\ AMANDA
|
||||
>8 string TAPESTART\ DATE tape header file,
|
||||
>>23 string X
|
||||
>>>25 string >\ Unused %s
|
||||
>>23 string >\ DATE %s
|
||||
>8 string FILE\ dump file,
|
||||
>>13 string >\ DATE %s
|
|
@ -1,39 +0,0 @@
|
|||
#------------------------------------------------------------------------------
|
||||
# amigaos: file(1) magic for AmigaOS binary formats:
|
||||
|
||||
#
|
||||
# From ignatios@cs.uni-bonn.de (Ignatios Souvatzis)
|
||||
# Some formats are still missing: AmigaOS special IFF's, e.g.: FORM....CTLG
|
||||
# (the others should be separate, anyway)
|
||||
#
|
||||
0 belong 0x000003f3 AmigaOS loadseg()ble executable/binary
|
||||
0 belong 0x000003e7 AmigaOS object/library data
|
||||
#
|
||||
0 beshort 0xe310 Amiga Workbench
|
||||
>2 beshort 1
|
||||
>>48 byte 1 disk icon
|
||||
>>48 byte 2 drawer icon
|
||||
>>48 byte 3 tool icon
|
||||
>>48 byte 4 project icon
|
||||
>>48 byte 5 garbage icon
|
||||
>>48 byte 6 device icon
|
||||
>>48 byte 7 kickstart icon
|
||||
>>48 byte 8 workbench application icon
|
||||
>2 beshort >1 icon, vers. %d
|
||||
#
|
||||
# various sound formats from the Amiga
|
||||
# G=F6tz Waschk <waschk@informatik.uni-rostock.de>
|
||||
#
|
||||
0 string FC14 Future Composer 1.4 Module sound file
|
||||
0 string SMOD Future Composer 1.3 Module sound file
|
||||
0 string AON4artofnoise Art Of Noise Module sound file
|
||||
1 string MUGICIAN/SOFTEYES Mugician Module sound file
|
||||
58 string SIDMON\ II\ -\ THE Sidmon 2.0 Module sound file
|
||||
0 string Synth4.0 Synthesis Module sound file
|
||||
0 string ARP. The Holy Noise Module sound file
|
||||
0 string BeEp\0 JamCracker Module sound file
|
||||
0 string COSO\0 Hippel-COSO Module sound file
|
||||
26 string V.3 Brian Postma's Soundmon Module sound file v3
|
||||
26 string BPSM Brian Postma's Soundmon Module sound file v3
|
||||
26 string V.2 Brian Postma's Soundmon Module sound file v2
|
||||
|
|
@ -1,196 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# animation: file(1) magic for animation/movie formats
|
||||
#
|
||||
# animation formats
|
||||
# MPEG, FLI, DL originally from vax@ccwf.cc.utexas.edu (VaX#n8)
|
||||
# FLC, SGI, Apple originally from Daniel Quinlan (quinlan@yggdrasil.com)
|
||||
|
||||
# MPEG animation format
|
||||
0 belong 0x000001b3 MPEG video stream data
|
||||
#>4 beshort&0xfff0 x (%d x
|
||||
#>5 beshort&0x0fff x %d)
|
||||
0 belong 0x000001ba MPEG system stream data
|
||||
|
||||
# MPEG Audio (*.mpx)
|
||||
# from dreesen@math.fu-berlin.de
|
||||
|
||||
# MPEG 1.0 Layer 3
|
||||
0 beshort&0xfffe =0xfffa \bMP3
|
||||
>2 byte&0xf0 =0x10 \b, 32 kBits
|
||||
>2 byte&0xf0 =0x20 \b, 40 kBits
|
||||
>2 byte&0xf0 =0x30 \b, 48 kBits
|
||||
>2 byte&0xf0 =0x40 \b, 56 kBits
|
||||
>2 byte&0xf0 =0x50 \b, 64 kBits
|
||||
>2 byte&0xf0 =0x60 \b, 80 kBits
|
||||
>2 byte&0xf0 =0x70 \b, 96 kBits
|
||||
>2 byte&0xf0 =0x80 \b, 112 kBits
|
||||
>2 byte&0xf0 =0x90 \b, 128 kBits
|
||||
>2 byte&0xf0 =0xA0 \b, 160 kBits
|
||||
>2 byte&0xf0 =0xB0 \b, 192 kBits
|
||||
>2 byte&0xf0 =0xC0 \b, 224 kBits
|
||||
>2 byte&0xf0 =0xD0 \b, 256 kBits
|
||||
>2 byte&0xf0 =0xE0 \b, 320 kBits
|
||||
# freq
|
||||
>2 byte&0x0C =0x00 \b, 44.1 kHz
|
||||
>2 byte&0x0C =0x04 \b, 48 kHz
|
||||
>2 byte&0x0C =0x08 \b, 32 kHz
|
||||
# misc
|
||||
>3 byte&0xC0 =0x00 \b, Stereo
|
||||
>3 byte&0xC0 =0x40 \b, JStereo
|
||||
>3 byte&0xC0 =0x80 \b, Dual-Ch
|
||||
>3 byte&0xC0 =0xC0 \b, Mono
|
||||
#>1 byte&0x01 =0x00 \b, Error Protection
|
||||
#>2 byte&0x02 =0x02 \b, Padding
|
||||
#>2 byte&0x01 =0x01 \b, Private
|
||||
#>3 byte&0x08 =0x08 \b, Copyright
|
||||
#>3 byte&0x04 =0x04 \b, Original
|
||||
#>3 byte&0x03 1 \b, Emphasis 5
|
||||
#>3 byte&0x03 3 \b, Emphasis c
|
||||
|
||||
# MPEG 1.0 Layer 2
|
||||
0 beshort&0xfffe =0xfffc \bMP2
|
||||
>2 byte&0xf0 =0x10 \b, 32 kBits
|
||||
>2 byte&0xf0 =0x20 \b, 48 kBits
|
||||
>2 byte&0xf0 =0x30 \b, 56 kBits
|
||||
>2 byte&0xf0 =0x40 \b, 64 kBits
|
||||
>2 byte&0xf0 =0x50 \b, 80 kBits
|
||||
>2 byte&0xf0 =0x60 \b, 96 kBits
|
||||
>2 byte&0xf0 =0x70 \b, 112 kBits
|
||||
>2 byte&0xf0 =0x80 \b, 128 kBits
|
||||
>2 byte&0xf0 =0x90 \b, 160 kBits
|
||||
>2 byte&0xf0 =0xA0 \b, 192 kBits
|
||||
>2 byte&0xf0 =0xB0 \b, 224 kBits
|
||||
>2 byte&0xf0 =0xC0 \b, 256 kBits
|
||||
>2 byte&0xf0 =0xD0 \b, 320 kBits
|
||||
>2 byte&0xf0 =0xE0 \b, 384 kBits
|
||||
# freq
|
||||
>2 byte&0x0C =0x00 \b, 44.1 kHz
|
||||
>2 byte&0x0C =0x04 \b, 48 kHz
|
||||
>2 byte&0x0C =0x08 \b, 32 kHz
|
||||
# misc
|
||||
>3 byte&0xC0 =0x00 \b, Stereo
|
||||
>3 byte&0xC0 =0x40 \b, JStereo
|
||||
>3 byte&0xC0 =0x80 \b, Dual-Ch
|
||||
>3 byte&0xC0 =0xC0 \b, Mono
|
||||
#>1 byte&0x01 =0x00 \b, Error Protection
|
||||
#>2 byte&0x02 =0x02 \b, Padding
|
||||
#>2 byte&0x01 =0x01 \b, Private
|
||||
#>3 byte&0x08 =0x08 \b, Copyright
|
||||
#>3 byte&0x04 =0x04 \b, Original
|
||||
#>3 byte&0x03 1 \b, Emphasis 5
|
||||
#>3 byte&0x03 3 \b, Emphasis c
|
||||
|
||||
# MPEG 2.0
|
||||
0 beshort&0xfff8 =0xfff0 MP
|
||||
# Layer 3
|
||||
>1 byte &0x02 \b3
|
||||
# Layer 2
|
||||
>1 byte &0x04 \b2
|
||||
>2 byte&0xf0 =0x10 \b, 8 kBits
|
||||
>2 byte&0xf0 =0x20 \b, 16 kBits
|
||||
>2 byte&0xf0 =0x30 \b, 24 kBits
|
||||
>2 byte&0xf0 =0x40 \b, 32 kBits
|
||||
>2 byte&0xf0 =0x50 \b, 40 kBits
|
||||
>2 byte&0xf0 =0x60 \b, 48 kBits
|
||||
>2 byte&0xf0 =0x70 \b, 56 kBits
|
||||
>2 byte&0xf0 =0x80 \b, 64 kBits
|
||||
>2 byte&0xf0 =0x90 \b, 80 kBits
|
||||
>2 byte&0xf0 =0xA0 \b, 96 kBits
|
||||
>2 byte&0xf0 =0xB0 \b, 112 kBits
|
||||
>2 byte&0xf0 =0xC0 \b, 128 kBits
|
||||
>2 byte&0xf0 =0xD0 \b, 144 kBits
|
||||
>2 byte&0xf0 =0xE0 \b, 160 kBits
|
||||
# freq
|
||||
>2 byte&0x0C =0x00 \b, 22.05 kHz
|
||||
>2 byte&0x0C =0x04 \b, 24 kHz
|
||||
>2 byte&0x0C =0x08 \b, 16 kHz
|
||||
# misc
|
||||
>3 byte&0xC0 =0x00 \b, Stereo
|
||||
>3 byte&0xC0 =0x40 \b, JStereo
|
||||
>3 byte&0xC0 =0x80 \b, Dual-Ch
|
||||
>3 byte&0xC0 =0xC0 \b, Mono
|
||||
#>1 byte&0x01 =0x00 \b, Error Protection
|
||||
#>2 byte&0x02 =0x02 \b, Padding
|
||||
#>2 byte&0x01 =0x01 \b, Private
|
||||
#>3 byte&0x08 =0x08 \b, Copyright
|
||||
#>3 byte&0x04 =0x04 \b, Original
|
||||
#>3 byte&0x03 1 \b, Emphasis 5
|
||||
#>3 byte&0x03 3 \b, Emphasis c
|
||||
|
||||
# FLI animation format
|
||||
4 leshort 0xAF11 FLI file
|
||||
>6 leshort x - %d frames,
|
||||
>8 leshort x width=%d pixels,
|
||||
>10 leshort x height=%d pixels,
|
||||
>12 leshort x depth=%d,
|
||||
>16 leshort x ticks/frame=%d
|
||||
# FLC animation format
|
||||
4 leshort 0xAF12 FLC file
|
||||
>6 leshort x - %d frames
|
||||
>8 leshort x width=%d pixels,
|
||||
>10 leshort x height=%d pixels,
|
||||
>12 leshort x depth=%d,
|
||||
>16 leshort x ticks/frame=%d
|
||||
|
||||
# DL animation format
|
||||
# XXX - collision with most `mips' magic
|
||||
#
|
||||
# I couldn't find a real magic number for these, however, this
|
||||
# -appears- to work. Note that it might catch other files, too, so be
|
||||
# careful!
|
||||
#
|
||||
# Note that title and author appear in the two 20-byte chunks
|
||||
# at decimal offsets 2 and 22, respectively, but they are XOR'ed with
|
||||
# 255 (hex FF)! The DL format is really bad.
|
||||
#
|
||||
#0 byte 1 DL version 1, medium format (160x100, 4 images/screen)
|
||||
#>42 byte x - %d screens,
|
||||
#>43 byte x %d commands
|
||||
#0 byte 2 DL version 2
|
||||
#>1 byte 1 - large format (320x200,1 image/screen),
|
||||
#>1 byte 2 - medium format (160x100,4 images/screen),
|
||||
#>1 byte >2 - unknown format,
|
||||
#>42 byte x %d screens,
|
||||
#>43 byte x %d commands
|
||||
# Based on empirical evidence, DL version 3 have several nulls following the
|
||||
# \003. Most of them start with non-null values at hex offset 0x34 or so.
|
||||
#0 string \3\0\0\0\0\0\0\0\0\0\0\0 DL version 3
|
||||
|
||||
# SGI and Apple formats
|
||||
0 string MOVI Silicon Graphics movie file
|
||||
4 string moov Apple QuickTime movie file (moov)
|
||||
4 string mdat Apple QuickTime movie file (mdat)
|
||||
|
||||
# iso 13818 transport stream
|
||||
#
|
||||
# from Oskar Schirmer <schirmer@scara.com> Feb 3, 2001 (ISO 13818.1)
|
||||
# (the following is a little bit restrictive and works fine for a stream
|
||||
# that starts with PAT properly. it won't work for stream data, that is
|
||||
# cut from an input device data right in the middle, but this shouldn't
|
||||
# disturb)
|
||||
# syncbyte 8 bit 0x47
|
||||
# error_ind 1 bit -
|
||||
# payload_start 1 bit 1
|
||||
# priority 1 bit -
|
||||
# PID 13 bit 0x0000
|
||||
# scrambling 2 bit -
|
||||
# adaptfld_ctrl 2 bit 1 or 3
|
||||
# conti_count 4 bit 0
|
||||
0 belong&0xFF5FFF1F 0x47400010 MPEG transport stream data
|
||||
>188 byte !0x47 CORRUPTED
|
||||
|
||||
# DIF digital video file format <mpruett@sgi.com>
|
||||
0 belong&0xffffff00 0x1f070000 DIF
|
||||
>4 byte &0x01 (DVCPRO) movie file
|
||||
>4 byte ^0x01 (DV) movie file
|
||||
>3 byte &0x80 (PAL)
|
||||
>3 byte ^0x80 (NTSC)
|
||||
|
||||
# Microsoft Advanced Streaming Format (ASF) <mpruett@sgi.com>
|
||||
0 belong 0x3026b275 Microsoft ASF
|
||||
|
||||
# MNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
|
||||
0 string \x8aMNG MNG video data,
|
||||
>4 belong !0x0d0a1a0a CORRUPTED,
|
||||
>4 belong 0x0d0a1a0a
|
|
@ -1,6 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# apl: file(1) magic for APL (see also "pdp" and "vax" for other APL
|
||||
# workspaces)
|
||||
#
|
||||
0 long 0100554 APL workspace (Ken's original?)
|
|
@ -1,122 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# apple: file(1) magic for Apple file formats
|
||||
#
|
||||
0 string FiLeStArTfIlEsTaRt binscii (apple ][) text
|
||||
0 string \x0aGL Binary II (apple ][) data
|
||||
0 string \x76\xff Squeezed (apple ][) data
|
||||
0 string NuFile NuFile archive (apple ][) data
|
||||
0 string N\xf5F\xe9l\xe5 NuFile archive (apple ][) data
|
||||
0 belong 0x00051600 AppleSingle encoded Macintosh file
|
||||
0 belong 0x00051607 AppleDouble encoded Macintosh file
|
||||
|
||||
# magic for Newton PDA package formats
|
||||
# from Ruda Moura <ruda@helllabs.org>
|
||||
0 string package0 Newton package, NOS 1.x,
|
||||
>12 belong &0x80000000 AutoRemove,
|
||||
>12 belong &0x40000000 CopyProtect,
|
||||
>12 belong &0x10000000 NoCompression,
|
||||
>12 belong &0x04000000 Relocation,
|
||||
>12 belong &0x02000000 UseFasterCompression,
|
||||
>16 belong x version %d
|
||||
|
||||
0 string package1 Newton package, NOS 2.x,
|
||||
>12 belong &0x80000000 AutoRemove,
|
||||
>12 belong &0x40000000 CopyProtect,
|
||||
>12 belong &0x10000000 NoCompression,
|
||||
>12 belong &0x04000000 Relocation,
|
||||
>12 belong &0x02000000 UseFasterCompression,
|
||||
>16 belong x version %d
|
||||
|
||||
# The following entries for the Apple II are for files that have
|
||||
# been transferred as raw binary data from an Apple, without having
|
||||
# been encapsulated by any of the above archivers.
|
||||
#
|
||||
# In general, Apple II formats are hard to identify because Apple DOS
|
||||
# and especially Apple ProDOS have strong typing in the file system and
|
||||
# therefore programmers never felt much need to include type information
|
||||
# in the files themselves.
|
||||
#
|
||||
# Eric Fischer <enf@pobox.com>
|
||||
|
||||
# AppleWorks word processor:
|
||||
#
|
||||
# This matches the standard tab stops for an AppleWorks file, but if
|
||||
# a file has a tab stop set in the first four columns this will fail.
|
||||
#
|
||||
# The "O" is really the magic number, but that's so common that it's
|
||||
# necessary to check the tab stops that follow it to avoid false positives.
|
||||
|
||||
4 string O==== AppleWorks word processor data
|
||||
>85 byte&0x01 >0 \b, zoomed
|
||||
>90 byte&0x01 >0 \b, paginated
|
||||
>92 byte&0x01 >0 \b, with mail merge
|
||||
#>91 byte x \b, left margin %d
|
||||
|
||||
# AppleWorks database:
|
||||
#
|
||||
# This isn't really a magic number, but it's the closest thing to one
|
||||
# that I could find. The 1 and 2 really mean "order in which you defined
|
||||
# categories" and "left to right, top to bottom," respectively; the D and R
|
||||
# mean that the cursor should move either down or right when you press Return.
|
||||
|
||||
#30 string \x01D AppleWorks database data
|
||||
#30 string \x02D AppleWorks database data
|
||||
#30 string \x01R AppleWorks database data
|
||||
#30 string \x02R AppleWorks database data
|
||||
|
||||
# AppleWorks spreadsheet:
|
||||
#
|
||||
# Likewise, this isn't really meant as a magic number. The R or C means
|
||||
# row- or column-order recalculation; the A or M means automatic or manual
|
||||
# recalculation.
|
||||
|
||||
#131 string RA AppleWorks spreadsheet data
|
||||
#131 string RM AppleWorks spreadsheet data
|
||||
#131 string CA AppleWorks spreadsheet data
|
||||
#131 string CM AppleWorks spreadsheet data
|
||||
|
||||
# Applesoft BASIC:
|
||||
#
|
||||
# This is incredibly sloppy, but will be true if the program was
|
||||
# written at its usual memory location of 2048 and its first line
|
||||
# number is less than 256. Yuck.
|
||||
|
||||
0 belong&0xff00ff 0x80000 Applesoft BASIC program data
|
||||
#>2 leshort x \b, first line number %d
|
||||
|
||||
# ORCA/EZ assembler:
|
||||
#
|
||||
# This will not identify ORCA/M source files, since those have
|
||||
# some sort of date code instead of the two zero bytes at 6 and 7
|
||||
# XXX Conflicts with ELF
|
||||
#4 belong&0xff00ffff 0x01000000 ORCA/EZ assembler source data
|
||||
#>5 byte x \b, build number %d
|
||||
|
||||
# Broderbund Fantavision
|
||||
#
|
||||
# I don't know what these values really mean, but they seem to recur.
|
||||
# Will they cause too many conflicts?
|
||||
|
||||
# Probably :-)
|
||||
#2 belong&0xFF00FF 0x040008 Fantavision movie data
|
||||
|
||||
# Some attempts at images.
|
||||
#
|
||||
# These are actually just bit-for-bit dumps of the frame buffer, so
|
||||
# there's really no reasonably way to distinguish them except for their
|
||||
# address (if preserved) -- 8192 or 16384 -- and their length -- 8192
|
||||
# or, occasionally, 8184.
|
||||
#
|
||||
# Nevertheless this will manage to catch a lot of images that happen
|
||||
# to have a solid-colored line at the bottom of the screen.
|
||||
|
||||
8144 string \x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F Apple II image with white background
|
||||
8144 string \x55\x2A\x55\x2A\x55\x2A\x55\x2A Apple II image with purple background
|
||||
8144 string \x2A\x55\x2A\x55\x2A\x55\x2A\x55 Apple II image with green background
|
||||
8144 string \xD5\xAA\xD5\xAA\xD5\xAA\xD5\xAA Apple II image with blue background
|
||||
8144 string \xAA\xD5\xAA\xD5\xAA\xD5\xAA\xD5 Apple II image with orange background
|
||||
|
||||
# Beagle Bros. Apple Mechanic fonts
|
||||
|
||||
0 belong&0xFF00FFFF 0x6400D000 Apple Mechanic font
|
|
@ -1,12 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# applix: file(1) magic for Applixware
|
||||
# From: Peter Soos <sp@osb.hu>
|
||||
#
|
||||
0 string *BEGIN Applixware
|
||||
>7 string WORDS Words Document
|
||||
>7 string GRAPHICS Graphic
|
||||
>7 string RASTER Bitmap
|
||||
>7 string SPREADSHEETS Spreadsheet
|
||||
>7 string MACRO Macro
|
||||
>7 string BUILDER Builder Object
|
|
@ -1,258 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# archive: file(1) magic for archive formats (see also "msdos" for self-
|
||||
# extracting compressed archives)
|
||||
#
|
||||
# cpio, ar, arc, arj, hpack, lha/lharc, rar, squish, uc2, zip, zoo, etc.
|
||||
# pre-POSIX "tar" archives are handled in the C code.
|
||||
|
||||
# POSIX tar archives
|
||||
257 string ustar\0 POSIX tar archive
|
||||
257 string ustar\040\040\0 GNU tar archive
|
||||
|
||||
# cpio archives
|
||||
#
|
||||
# Yes, the top two "cpio archive" formats *are* supposed to just be "short".
|
||||
# The idea is to indicate archives produced on machines with the same
|
||||
# byte order as the machine running "file" with "cpio archive", and
|
||||
# to indicate archives produced on machines with the opposite byte order
|
||||
# from the machine running "file" with "byte-swapped cpio archive".
|
||||
#
|
||||
# The SVR4 "cpio(4)" hints that there are additional formats, but they
|
||||
# are defined as "short"s; I think all the new formats are
|
||||
# character-header formats and thus are strings, not numbers.
|
||||
0 short 070707 cpio archive
|
||||
0 short 0143561 byte-swapped cpio archive
|
||||
0 string 070707 ASCII cpio archive (pre-SVR4 or odc)
|
||||
0 string 070701 ASCII cpio archive (SVR4 with no CRC)
|
||||
0 string 070702 ASCII cpio archive (SVR4 with CRC)
|
||||
|
||||
# Debian package (needs to go before regular portable archives)
|
||||
#
|
||||
0 string !<arch>\ndebian
|
||||
>8 string debian-split part of multipart Debian package
|
||||
>8 string debian-binary Debian binary package
|
||||
>68 string >\n (format %s)
|
||||
>136 ledate x created: %s
|
||||
|
||||
# other archives
|
||||
0 long 0177555 very old archive
|
||||
0 short 0177555 very old PDP-11 archive
|
||||
0 long 0177545 old archive
|
||||
0 short 0177545 old PDP-11 archive
|
||||
0 long 0100554 apl workspace
|
||||
0 string =<ar> archive
|
||||
|
||||
# MIPS archive (needs to go before regular portable archives)
|
||||
#
|
||||
0 string !<arch>\n__________E MIPS archive
|
||||
>20 string U with MIPS Ucode members
|
||||
>21 string L with MIPSEL members
|
||||
>21 string B with MIPSEB members
|
||||
>19 string L and an EL hash table
|
||||
>19 string B and an EB hash table
|
||||
>22 string X -- out of date
|
||||
|
||||
0 string -h- Software Tools format archive text
|
||||
|
||||
#
|
||||
# XXX - why are there multiple <ar> thingies? Note that 0x213c6172 is
|
||||
# "!<ar", so, for new-style (4.xBSD/SVR2andup) archives, we have:
|
||||
#
|
||||
# 0 string !<arch> current ar archive
|
||||
# 0 long 0x213c6172 archive file
|
||||
#
|
||||
# and for SVR1 archives, we have:
|
||||
#
|
||||
# 0 string \<ar> System V Release 1 ar archive
|
||||
# 0 string =<ar> archive
|
||||
#
|
||||
# XXX - did Aegis really store shared libraries, breakpointed modules,
|
||||
# and absolute code program modules in the same format as new-style
|
||||
# "ar" archives?
|
||||
#
|
||||
0 string !<arch> current ar archive
|
||||
>8 string __.SYMDEF random library
|
||||
>0 belong =65538 - pre SR9.5
|
||||
>0 belong =65539 - post SR9.5
|
||||
>0 beshort 2 - object archive
|
||||
>0 beshort 3 - shared library module
|
||||
>0 beshort 4 - debug break-pointed module
|
||||
>0 beshort 5 - absolute code program module
|
||||
0 string \<ar> System V Release 1 ar archive
|
||||
0 string =<ar> archive
|
||||
#
|
||||
# XXX - from "vax", which appears to collect a bunch of byte-swapped
|
||||
# thingies, to help you recognize VAX files on big-endian machines;
|
||||
# with "leshort", "lelong", and "string", that's no longer necessary....
|
||||
#
|
||||
0 belong 0x65ff0000 VAX 3.0 archive
|
||||
0 belong 0x3c61723e VAX 5.0 archive
|
||||
#
|
||||
0 long 0x213c6172 archive file
|
||||
0 lelong 0177555 very old VAX archive
|
||||
0 leshort 0177555 very old PDP-11 archive
|
||||
#
|
||||
# XXX - "pdp" claims that 0177545 can have an __.SYMDEF member and thus
|
||||
# be a random library (it said 0xff65 rather than 0177545).
|
||||
#
|
||||
0 lelong 0177545 old VAX archive
|
||||
>8 string __.SYMDEF random library
|
||||
0 leshort 0177545 old PDP-11 archive
|
||||
>8 string __.SYMDEF random library
|
||||
#
|
||||
# From "pdp" (but why a 4-byte quantity?)
|
||||
#
|
||||
0 lelong 0x39bed PDP-11 old archive
|
||||
0 lelong 0x39bee PDP-11 4.0 archive
|
||||
|
||||
# ARC archiver, from Daniel Quinlan (quinlan@yggdrasil.com)
|
||||
#
|
||||
# The first byte is the magic (0x1a), byte 2 is the compression type for
|
||||
# the first file (0x01 through 0x09), and bytes 3 to 15 are the MS-DOS
|
||||
# filename of the first file (null terminated). Since some types collide
|
||||
# we only test some types on basis of frequency: 0x08 (83%), 0x09 (5%),
|
||||
# 0x02 (5%), 0x03 (3%), 0x04 (2%), 0x06 (2%). 0x01 collides with terminfo.
|
||||
0 lelong&0x8080ffff 0x0000081a ARC archive data, dynamic LZW
|
||||
0 lelong&0x8080ffff 0x0000091a ARC archive data, squashed
|
||||
0 lelong&0x8080ffff 0x0000021a ARC archive data, uncompressed
|
||||
0 lelong&0x8080ffff 0x0000031a ARC archive data, packed
|
||||
0 lelong&0x8080ffff 0x0000041a ARC archive data, squeezed
|
||||
0 lelong&0x8080ffff 0x0000061a ARC archive data, crunched
|
||||
|
||||
# Acorn archive formats (Disaster prone simpleton, m91dps@ecs.ox.ac.uk)
|
||||
# I can't create either SPARK or ArcFS archives so I have not tested this stuff
|
||||
# [GRR: the original entries collide with ARC, above; replaced with combined
|
||||
# version (not tested)]
|
||||
#0 byte 0x1a RISC OS archive
|
||||
#>1 string archive (ArcFS format)
|
||||
0 string \032archive RISC OS archive (ArcFS format)
|
||||
|
||||
# ARJ archiver (jason@jarthur.Claremont.EDU)
|
||||
0 leshort 0xea60 ARJ archive data
|
||||
>5 byte x \b, v%d,
|
||||
>8 byte &0x04 multi-volume,
|
||||
>8 byte &0x10 slash-switched,
|
||||
>8 byte &0x20 backup,
|
||||
>34 string x original name: %s,
|
||||
>7 byte 0 os: MS-DOS
|
||||
>7 byte 1 os: PRIMOS
|
||||
>7 byte 2 os: Unix
|
||||
>7 byte 3 os: Amiga
|
||||
>7 byte 4 os: Macintosh
|
||||
>7 byte 5 os: OS/2
|
||||
>7 byte 6 os: Apple ][ GS
|
||||
>7 byte 7 os: Atari ST
|
||||
>7 byte 8 os: NeXT
|
||||
>7 byte 9 os: VAX/VMS
|
||||
>3 byte >0 %d]
|
||||
|
||||
# HA archiver (Greg Roelofs, newt@uchicago.edu)
|
||||
# This is a really bad format. A file containing HAWAII will match this...
|
||||
#0 string HA HA archive data,
|
||||
#>2 leshort =1 1 file,
|
||||
#>2 leshort >1 %u files,
|
||||
#>4 byte&0x0f =0 first is type CPY
|
||||
#>4 byte&0x0f =1 first is type ASC
|
||||
#>4 byte&0x0f =2 first is type HSC
|
||||
#>4 byte&0x0f =0x0e first is type DIR
|
||||
#>4 byte&0x0f =0x0f first is type SPECIAL
|
||||
|
||||
# HPACK archiver (Peter Gutmann, pgut1@cs.aukuni.ac.nz)
|
||||
0 string HPAK HPACK archive data
|
||||
|
||||
# JAM Archive volume format, by Dmitry.Kohmanyuk@UA.net
|
||||
0 string \351,\001JAM\ JAM archive,
|
||||
>7 string >\0 version %.4s
|
||||
>0x26 byte =0x27 -
|
||||
>>0x2b string >\0 label %.11s,
|
||||
>>0x27 lelong x serial %08x,
|
||||
>>0x36 string >\0 fstype %.8s
|
||||
|
||||
# LHARC/LHA archiver (Greg Roelofs, newt@uchicago.edu)
|
||||
2 string -lh0- LHarc 1.x archive data [lh0]
|
||||
2 string -lh1- LHarc 1.x archive data [lh1]
|
||||
2 string -lz4- LHarc 1.x archive data [lz4]
|
||||
2 string -lz5- LHarc 1.x archive data [lz5]
|
||||
# [never seen any but the last; -lh4- reported in comp.compression:]
|
||||
2 string -lzs- LHa 2.x? archive data [lzs]
|
||||
2 string -lh\40- LHa 2.x? archive data [lh ]
|
||||
2 string -lhd- LHa 2.x? archive data [lhd]
|
||||
2 string -lh2- LHa 2.x? archive data [lh2]
|
||||
2 string -lh3- LHa 2.x? archive data [lh3]
|
||||
2 string -lh4- LHa (2.x) archive data [lh4]
|
||||
2 string -lh5- LHa (2.x) archive data [lh5]
|
||||
2 string -lh6- LHa (2.x) archive data [lh6]
|
||||
2 string -lh7- LHa (2.x) archive data [lh7]
|
||||
>20 byte x - header level %d
|
||||
|
||||
# RAR archiver (Greg Roelofs, newt@uchicago.edu)
|
||||
0 string Rar! RAR archive data
|
||||
|
||||
# SQUISH archiver (Greg Roelofs, newt@uchicago.edu)
|
||||
0 string SQSH squished archive data (Acorn RISCOS)
|
||||
|
||||
# UC2 archiver (Greg Roelofs, newt@uchicago.edu)
|
||||
# I can't figure out the self-extracting form of these buggers...
|
||||
0 string UC2\x1a UC2 archive data
|
||||
|
||||
# ZIP archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu)
|
||||
0 string PK\003\004 Zip archive data
|
||||
>4 byte 0x09 \b, at least v0.9 to extract
|
||||
>4 byte 0x0a \b, at least v1.0 to extract
|
||||
>4 byte 0x0b \b, at least v1.1 to extract
|
||||
>4 byte 0x14 \b, at least v2.0 to extract
|
||||
|
||||
# Zoo archiver
|
||||
20 lelong 0xfdc4a7dc Zoo archive data
|
||||
>4 byte >48 \b, v%c.
|
||||
>>6 byte >47 \b%c
|
||||
>>>7 byte >47 \b%c
|
||||
>32 byte >0 \b, modify: v%d
|
||||
>>33 byte x \b.%d+
|
||||
>42 lelong 0xfdc4a7dc \b,
|
||||
>>70 byte >0 extract: v%d
|
||||
>>>71 byte x \b.%d+
|
||||
|
||||
# Shell archives
|
||||
10 string #\ This\ is\ a\ shell\ archive shell archive text
|
||||
|
||||
#
|
||||
# LBR. NB: May conflict with the questionable
|
||||
# "binary Computer Graphics Metafile" format.
|
||||
#
|
||||
0 string \0\ \ \ \ \ \ \ \ \ \ \ \0\0 LBR archive data
|
||||
#
|
||||
# PMA (CP/M derivative of LHA)
|
||||
#
|
||||
2 string -pm0- PMarc archive data [pm0]
|
||||
2 string -pm1- PMarc archive data [pm1]
|
||||
2 string -pm2- PMarc archive data [pm2]
|
||||
2 string -pms- PMarc SFX archive (CP/M, DOS)
|
||||
5 string -pc1- PopCom compressed executable (CP/M)
|
||||
|
||||
# From rafael@icp.inpg.fr (Rafael Laboissiere)
|
||||
# The Project Revision Control System (see
|
||||
# http://www.XCF.Berkeley.EDU/~jmacd/prcs.html) generates a packaged project
|
||||
# file which is recognized by the following entry:
|
||||
0 leshort 0xeb81 PRCS packaged project
|
||||
|
||||
# Microsoft cabinets
|
||||
# by David Necas (Yeti) <yeti@physics.muni.cz>
|
||||
0 string MSCF\0\0\0\0 Microsoft cabinet file data,
|
||||
>25 byte x v%d
|
||||
>24 byte x \b.%d
|
||||
|
||||
# GTKtalog catalogs
|
||||
# by David Necas (Yeti) <yeti@physics.muni.cz>
|
||||
4 string gtktalog\ GTKtalog catalog data,
|
||||
>13 string 3 version 3
|
||||
>>14 beshort 0x677a (gzipped)
|
||||
>>14 beshort !0x677a (not gzipped)
|
||||
>13 string >3 version %s
|
||||
|
||||
############################################################################
|
||||
# Parity archive reconstruction file, the 'par' file format now used on Usenet.
|
||||
0 string PAR\0 PARity archive data
|
||||
>48 leshort =0 - Index file
|
||||
>48 leshort >0 - file number %d
|
|
@ -1,17 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# asterix: file(1) magic for Aster*x; SunOS 5.5.1 gave the 4-character
|
||||
# strings as "long" - we assume they're just strings:
|
||||
# From: guy@netapp.com (Guy Harris)
|
||||
#
|
||||
0 string *STA Aster*x
|
||||
>7 string WORD Words Document
|
||||
>7 string GRAP Graphic
|
||||
>7 string SPRE Spreadsheet
|
||||
>7 string MACR Macro
|
||||
0 string 2278 Aster*x Version 2
|
||||
>29 byte 0x36 Words Document
|
||||
>29 byte 0x35 Graphic
|
||||
>29 byte 0x32 Spreadsheet
|
||||
>29 byte 0x38 Macro
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# att3b: file(1) magic for AT&T 3B machines
|
||||
#
|
||||
# The `versions' should be un-commented if they work for you.
|
||||
# (Was the problem just one of endianness?)
|
||||
#
|
||||
# 3B20
|
||||
#
|
||||
# The 3B20 conflicts with SCCS.
|
||||
#0 beshort 0550 3b20 COFF executable
|
||||
#>12 belong >0 not stripped
|
||||
#>22 beshort >0 - version %ld
|
||||
#0 beshort 0551 3b20 COFF executable (TV)
|
||||
#>12 belong >0 not stripped
|
||||
#>22 beshort >0 - version %ld
|
||||
#
|
||||
# WE32K
|
||||
#
|
||||
0 beshort 0560 WE32000 COFF
|
||||
>18 beshort ^00000020 object
|
||||
>18 beshort &00000020 executable
|
||||
>12 belong >0 not stripped
|
||||
>18 beshort ^00010000 N/A on 3b2/300 w/paging
|
||||
>18 beshort &00020000 32100 required
|
||||
>18 beshort &00040000 and MAU hardware required
|
||||
>20 beshort 0407 (impure)
|
||||
>20 beshort 0410 (pure)
|
||||
>20 beshort 0413 (demand paged)
|
||||
>20 beshort 0443 (target shared library)
|
||||
>22 beshort >0 - version %ld
|
||||
0 beshort 0561 WE32000 COFF executable (TV)
|
||||
>12 belong >0 not stripped
|
||||
#>18 beshort &00020000 - 32100 required
|
||||
#>18 beshort &00040000 and MAU hardware required
|
||||
#>22 beshort >0 - version %ld
|
||||
#
|
||||
# core file for 3b2
|
||||
0 string \000\004\036\212\200 3b2 core file
|
||||
>364 string >\0 of '%s'
|
|
@ -1,196 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# audio: file(1) magic for sound formats (see also "iff")
|
||||
#
|
||||
# Jan Nicolai Langfeldt (janl@ifi.uio.no), Dan Quinlan (quinlan@yggdrasil.com),
|
||||
# and others
|
||||
#
|
||||
|
||||
# Sun/NeXT audio data
|
||||
0 string .snd Sun/NeXT audio data:
|
||||
>12 belong 1 8-bit ISDN u-law,
|
||||
>12 belong 2 8-bit linear PCM [REF-PCM],
|
||||
>12 belong 3 16-bit linear PCM,
|
||||
>12 belong 4 24-bit linear PCM,
|
||||
>12 belong 5 32-bit linear PCM,
|
||||
>12 belong 6 32-bit IEEE floating point,
|
||||
>12 belong 7 64-bit IEEE floating point,
|
||||
>12 belong 23 8-bit ISDN u-law compressed (CCITT G.721 ADPCM voice data encoding),
|
||||
>12 belong 24 compressed (8-bit G.722 ADPCM)
|
||||
>12 belong 25 compressed (3-bit G.723 ADPCM),
|
||||
>12 belong 26 compressed (5-bit G.723 ADPCM),
|
||||
>12 belong 27 8-bit A-law,
|
||||
>20 belong 1 mono,
|
||||
>20 belong 2 stereo,
|
||||
>20 belong 4 quad,
|
||||
>16 belong >0 %d Hz
|
||||
|
||||
# DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format
|
||||
# that uses little-endian encoding and has a different magic number
|
||||
0 lelong 0x0064732E DEC audio data:
|
||||
>12 lelong 1 8-bit ISDN u-law,
|
||||
>12 lelong 2 8-bit linear PCM [REF-PCM],
|
||||
>12 lelong 3 16-bit linear PCM,
|
||||
>12 lelong 4 24-bit linear PCM,
|
||||
>12 lelong 5 32-bit linear PCM,
|
||||
>12 lelong 6 32-bit IEEE floating point,
|
||||
>12 lelong 7 64-bit IEEE floating point,
|
||||
>12 lelong 23 8-bit ISDN u-law compressed (CCITT G.721 ADPCM voice data encoding),
|
||||
>20 lelong 1 mono,
|
||||
>20 lelong 2 stereo,
|
||||
>20 lelong 4 quad,
|
||||
>16 lelong >0 %d Hz
|
||||
|
||||
# Creative Labs AUDIO stuff
|
||||
0 string MThd Standard MIDI data
|
||||
>9 byte >0 (format %d)
|
||||
>11 byte >1 using %d tracks
|
||||
0 string CTMF Creative Music (CMF) data
|
||||
0 string SBI SoundBlaster instrument data
|
||||
0 string Creative\ Voice\ File Creative Labs voice data
|
||||
# is this next line right? it came this way...
|
||||
>19 byte 0x1A
|
||||
>23 byte >0 - version %d
|
||||
>22 byte >0 \b.%d
|
||||
|
||||
# first entry is also the string "NTRK"
|
||||
0 belong 0x4e54524b MultiTrack sound data
|
||||
>4 belong x - version %ld
|
||||
|
||||
# Extended MOD format (*.emd) (Greg Roelofs, newt@uchicago.edu); NOT TESTED
|
||||
# [based on posting 940824 by "Dirk/Elastik", husberg@lehtori.cc.tut.fi]
|
||||
0 string EMOD Extended MOD sound data,
|
||||
>4 byte&0xf0 x version %d
|
||||
>4 byte&0x0f x \b.%d,
|
||||
>45 byte x %d instruments
|
||||
>83 byte 0 (module)
|
||||
>83 byte 1 (song)
|
||||
|
||||
# Real Audio (Magic .ra\0375)
|
||||
0 belong 0x2e7261fd RealAudio sound file
|
||||
0 string .RMF RealMedia file
|
||||
|
||||
# MTM/669/FAR/S3M/ULT/XM format checking [Aaron Eppert, aeppert@dialin.ind.net]
|
||||
# Oct 31, 1995
|
||||
0 string MTM MultiTracker Module sound file
|
||||
#0 string if Composer 669 Module sound data
|
||||
0 string FAR Module sound data
|
||||
0 string MAS_U ULT(imate) Module sound data
|
||||
0x2c string SCRM ScreamTracker III Module sound data
|
||||
0 string Extended Module Extended Module sound data
|
||||
|
||||
# Gravis UltraSound patches
|
||||
# From <ache@nagual.ru>
|
||||
|
||||
0 string GF1PATCH110\0ID#000002\0 GUS patch
|
||||
0 string GF1PATCH100\0ID#000002\0 Old GUS patch
|
||||
|
||||
#
|
||||
# Taken from loader code from mikmod version 2.14
|
||||
# by Steve McIntyre (stevem@chiark.greenend.org.uk)
|
||||
0 string JN extended 669 module data
|
||||
0 string MAS_UTrack_V00
|
||||
>14 string >/0 ultratracker V1.%.1s module sound data
|
||||
0 string UN05 MikMod UNI format module sound data
|
||||
0 string Extended\ Module: Fasttracker II module sound data
|
||||
21 string !SCREAM! Screamtracker 2 module sound data
|
||||
1080 string M.K. 4-channel Protracker module sound data
|
||||
1080 string M!K! 4-channel Protracker module sound data
|
||||
1080 string FLT4 4-channel Startracker module sound data
|
||||
1080 string 4CHN 4-channel Fasttracker module sound data
|
||||
1080 string 6CHN 6-channel Fasttracker module sound data
|
||||
1080 string 8CHN 8-channel Fasttracker module sound data
|
||||
1080 string CD81 8-channel Oktalyzer module sound data
|
||||
1080 string OKTA 8-channel Oktalyzer module sound data
|
||||
# Not good enough.
|
||||
#1082 string CH
|
||||
#>1080 string >/0 %.2s-channel Fasttracker "oktalyzer" module sound data
|
||||
1080 string 16CN 16-channel Taketracker module sound data
|
||||
1080 string 32CN 32-channel Taketracker module sound data
|
||||
|
||||
# TOC sound files -Trevor Johnson <trevor@jpj.net>
|
||||
#
|
||||
0 string TOC TOC sound file
|
||||
|
||||
# sidfiles <pooka@iki.fi>
|
||||
0 string SIDPLAY\ INFOFILE Sidplay info file
|
||||
0 string PSID PlaySID v2.2+ (AMIGA) sidtune
|
||||
>4 beshort >0 w/ header v%d,
|
||||
>14 beshort =1 single song,
|
||||
>14 beshort >1 %d songs,
|
||||
>16 beshort >0 default song: %d
|
||||
|
||||
# IRCAM <mpruett@sgi.com>
|
||||
# VAX and MIPS files are little-endian; Sun and NeXT are big-endian
|
||||
0 belong 0x64a30100 IRCAM file (VAX)
|
||||
0 belong 0x64a30200 IRCAM file (Sun)
|
||||
0 belong 0x64a30300 IRCAM file (MIPS little-endian)
|
||||
0 belong 0x64a30400 IRCAM file (NeXT)
|
||||
|
||||
# NIST SPHERE <mpruett@sgi.com>
|
||||
0 string NIST_1A\n\ \ \ 1024\n NIST SPHERE file
|
||||
|
||||
# Sample Vision <mpruett@sgi.com>
|
||||
0 string SOUND\ SAMPLE\ DATA\ Sample Vision file
|
||||
|
||||
# Audio Visual Research <mpruett@sgi.com>
|
||||
0 string 2BIT Audio Visual Research file
|
||||
|
||||
# SGI SoundTrack <mpruett@sgi.com>
|
||||
0 string _SGI_SoundTrack SGI SoundTrack project file
|
||||
# ID3 version 2 tags <waschk@informatik.uni-rostock.de>
|
||||
0 string ID3 MP3 file with ID3 version 2.
|
||||
>3 ubyte <0xff \b%d.
|
||||
>4 ubyte <0xff \b%d tag
|
||||
|
||||
# NSF (NES sound file) magic
|
||||
0 string NESM\x1a NES Sound File
|
||||
>14 string >\0 ("%s" by
|
||||
>46 string >\0 %s, copyright
|
||||
>78 string >\0 %s),
|
||||
>5 byte x version %d,
|
||||
>6 byte x %d tracks,
|
||||
>122 byte&0x2 =1 dual PAL/NTSC
|
||||
>122 byte&0x1 =1 PAL
|
||||
>122 byte&0x1 =0 NTSC
|
||||
|
||||
# Impuse tracker module (audio/x-it)
|
||||
0 string IMPM Impulse Tracker module sound data -
|
||||
>4 string >\0 "%s"
|
||||
|
||||
# Impulse Tracker data files <collver1@attbi.com>
|
||||
0 string IMPS Impulse Tracker Sample
|
||||
>18 byte &2 16 bit
|
||||
>18 byte ^2 8 bit
|
||||
>18 byte &4 stereo
|
||||
>18 byte ^4 mono
|
||||
0 string IMPI Impulse Tracker Instrument
|
||||
>28 leshort !0 ITv%x
|
||||
>30 byte !0 %d samples
|
||||
0 string IMPM Impulse Tracker Module
|
||||
>40 leshort !0 compatible w/ITv%x
|
||||
>42 leshort !0 created w/ITv%x
|
||||
|
||||
# Imago Orpheus module (audio/x-imf)
|
||||
60 string IM10 Imago Orpheus module sound data -
|
||||
>0 string >\0 "%s"
|
||||
|
||||
# Scream Tracker sample files <collver1@attbi.com>
|
||||
76 string SCRS Scream Tracker Sample
|
||||
>0 byte 1 sample
|
||||
>0 byte 2 adlib melody
|
||||
>0 byte >2 adlib drum
|
||||
>31 byte &2 stereo
|
||||
>31 byte ^2 mono
|
||||
>31 byte &4 16bit little endian
|
||||
>31 byte ^4 8bit
|
||||
>30 byte 0 unpacked
|
||||
>30 byte 1 packed
|
||||
|
||||
# Yamaha TX Wave audio files <collver1@attbi.com>
|
||||
0 string LM8953 Yamaha TX Wave
|
||||
>22 byte 0x49 looped
|
||||
>22 byte 0xC9 non-looped
|
||||
>23 byte 1 33kHz
|
||||
>23 byte 2 50kHz
|
||||
>23 byte 3 16kHz
|
|
@ -1,17 +0,0 @@
|
|||
#------------------------------------------------------------------------------
|
||||
# blender: file(1) magic for Blender 3D data files
|
||||
#
|
||||
# Coded by Guillermo S. Romero <gsromero@alumnos.euitt.upm.es> using the
|
||||
# data from Ton Roosendaal <ton@blender.nl>. Ton or his company do not
|
||||
# support the rule, so mail GSR if problems with it. Rule version: 1.1.
|
||||
# You can get latest version with comments and details about the format
|
||||
# at http://acd.asoc.euitt.upm.es/~gsromero/3d/blender/magic.blender
|
||||
|
||||
0 string =BLENDER Blender3D,
|
||||
>7 string =_ saved as 32-bits
|
||||
>7 string =- saved as 64-bits
|
||||
>8 string =v little endian
|
||||
>8 string =V big endian
|
||||
>9 byte x with version %c.
|
||||
>10 byte x \b%c
|
||||
>11 byte x \b%c
|
|
@ -1,19 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# blit: file(1) magic for 68K Blit stuff as seen from 680x0 machine
|
||||
#
|
||||
# Note that this 0407 conflicts with several other a.out formats...
|
||||
#
|
||||
# XXX - should this be redone with "be" and "le", so that it works on
|
||||
# little-endian machines as well? If so, what's the deal with
|
||||
# "VAX-order" and "VAX-order2"?
|
||||
#
|
||||
#0 long 0407 68K Blit (standalone) executable
|
||||
#0 short 0407 VAX-order2 68K Blit (standalone) executable
|
||||
0 short 03401 VAX-order 68K Blit (standalone) executable
|
||||
0 long 0406 68k Blit mpx/mux executable
|
||||
0 short 0406 VAX-order2 68k Blit mpx/mux executable
|
||||
0 short 03001 VAX-order 68k Blit mpx/mux executable
|
||||
# Need more values for WE32 DMD executables.
|
||||
# Note that 0520 is the same as COFF
|
||||
#0 short 0520 tty630 layers executable
|
|
@ -1,41 +0,0 @@
|
|||
#------------------------------------------------------------------------------
|
||||
# bsdi: file(1) magic for BSD/OS (from BSDI) objects
|
||||
#
|
||||
|
||||
0 lelong 0314 386 compact demand paged pure executable
|
||||
>16 lelong >0 not stripped
|
||||
>32 byte 0x6a (uses shared libs)
|
||||
|
||||
0 lelong 0407 386 executable
|
||||
>16 lelong >0 not stripped
|
||||
>32 byte 0x6a (uses shared libs)
|
||||
|
||||
0 lelong 0410 386 pure executable
|
||||
>16 lelong >0 not stripped
|
||||
>32 byte 0x6a (uses shared libs)
|
||||
|
||||
0 lelong 0413 386 demand paged pure executable
|
||||
>16 lelong >0 not stripped
|
||||
>32 byte 0x6a (uses shared libs)
|
||||
|
||||
# same as in SunOS 4.x, except for static shared libraries
|
||||
0 belong&077777777 0600413 sparc demand paged
|
||||
>0 byte &0x80
|
||||
>>20 belong <4096 shared library
|
||||
>>20 belong =4096 dynamically linked executable
|
||||
>>20 belong >4096 dynamically linked executable
|
||||
>0 byte ^0x80 executable
|
||||
>16 belong >0 not stripped
|
||||
>36 belong 0xb4100001 (uses shared libs)
|
||||
|
||||
0 belong&077777777 0600410 sparc pure
|
||||
>0 byte &0x80 dynamically linked executable
|
||||
>0 byte ^0x80 executable
|
||||
>16 belong >0 not stripped
|
||||
>36 belong 0xb4100001 (uses shared libs)
|
||||
|
||||
0 belong&077777777 0600407 sparc
|
||||
>0 byte &0x80 dynamically linked executable
|
||||
>0 byte ^0x80 executable
|
||||
>16 belong >0 not stripped
|
||||
>36 belong 0xb4100001 (uses shared libs)
|
|
@ -1,13 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# c-lang: file(1) magic for C programs (or REXX)
|
||||
#
|
||||
|
||||
# XPM icons (Greg Roelofs, newt@uchicago.edu)
|
||||
# if you uncomment "/*" for C/REXX below, also uncomment this entry
|
||||
#0 string /*\ XPM\ */ X pixmap image data
|
||||
|
||||
# this first will upset you if you're a PL/1 shop...
|
||||
# in which case rm it; ascmagic will catch real C programs
|
||||
#0 string /* C or REXX program text
|
||||
0 string // C++ program text
|
|
@ -1,11 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# CDDB: file(1) magic for CDDB(tm) format CD text data files
|
||||
#
|
||||
# From <steve@gracenote.com>
|
||||
#
|
||||
# This is the /etc/magic entry to decode datafiles as used by
|
||||
# CDDB-enabled CD player applications.
|
||||
#
|
||||
|
||||
0 string/b #\040xmcd CDDB(tm) format CD text data
|
|
@ -1,7 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# chi: file(1) magic for ChiWriter files
|
||||
#
|
||||
0 string \\1cw\ ChiWriter file
|
||||
>5 string >\0 version %s
|
||||
0 string \\1cw ChiWriter file
|
|
@ -1,10 +0,0 @@
|
|||
#------------------------------------------------------------------------------
|
||||
# cisco: file(1) magic for cisco Systems routers
|
||||
#
|
||||
# Most cisco file-formats are covered by the generic elf code
|
||||
#
|
||||
# Microcode files are non-ELF, 0x8501 conflicts with NetBSD/alpha.
|
||||
0 belong&0xffffff00 0x85011400 cisco IOS microcode
|
||||
>7 string >\0 for '%s'
|
||||
0 belong&0xffffff00 0x8501cb00 cisco IOS experimental microcode
|
||||
>7 string >\0 for '%s'
|
|
@ -1,6 +0,0 @@
|
|||
#------------------------------------------------------------------------------
|
||||
# citrus locale declaration
|
||||
#
|
||||
|
||||
0 string RuneCT Citrus locale declaration for LC_CTYPE
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# claris: file(1) magic for claris
|
||||
# "H. Nanosecond" <aldomel@ix.netcom.com>
|
||||
# Claris Works a word processor, etc.
|
||||
# Version 3.0
|
||||
|
||||
# .pct claris works clip art files
|
||||
#0000000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
|
||||
#*
|
||||
#0001000 #010 250 377 377 377 377 000 213 000 230 000 021 002 377 014 000
|
||||
#null to byte 1000 octal
|
||||
514 string \377\377\377\377\000 Claris clip art?
|
||||
>0 string \0\0\0\0\0\0\0\0\0\0\0\0\0 yes.
|
||||
514 string \377\377\377\377\001 Claris clip art?
|
||||
>0 string \0\0\0\0\0\0\0\0\0\0\0\0\0 yes.
|
||||
|
||||
# Claris works files
|
||||
# .cwk
|
||||
0 string \002\000\210\003\102\117\102\117\000\001\206 Claris works document
|
||||
# .plt
|
||||
0 string \020\341\000\000\010\010 Claris Works pallete files .plt
|
||||
|
||||
# .msp a dictionary file I am not sure about this I have only one .msp file
|
||||
0 string \002\271\262\000\040\002\000\164 Claris works dictionary
|
||||
|
||||
# .usp are user dictionary bits
|
||||
# I am not sure about a magic header:
|
||||
#0000000 001 123 160 146 070 125 104 040 136 123 015 012 160 157 144 151
|
||||
# soh S p f 8 U D sp ^ S cr nl p o d i
|
||||
#0000020 141 164 162 151 163 164 040 136 123 015 012 144 151 166 040 043
|
||||
# a t r i s t sp ^ S cr nl d i v sp #
|
||||
|
||||
# .mth Thesaurus
|
||||
# statrts with \0 but no magic header
|
||||
|
||||
# .chy Hyphenation file
|
||||
# I am not sure: 000 210 034 000 000
|
||||
|
||||
# other claris files
|
||||
#./windows/claris/useng.ndx: data
|
||||
#./windows/claris/xtndtran.l32: data
|
||||
#./windows/claris/xtndtran.lst: data
|
||||
#./windows/claris/clworks.lbl: data
|
||||
#./windows/claris/clworks.prf: data
|
||||
#./windows/claris/userd.spl: data
|
|
@ -1,64 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# clipper: file(1) magic for Intergraph (formerly Fairchild) Clipper.
|
||||
#
|
||||
# XXX - what byte order does the Clipper use?
|
||||
#
|
||||
# XXX - what's the "!" stuff:
|
||||
#
|
||||
# >18 short !074000,000000 C1 R1
|
||||
# >18 short !074000,004000 C2 R1
|
||||
# >18 short !074000,010000 C3 R1
|
||||
# >18 short !074000,074000 TEST
|
||||
#
|
||||
# I shall assume it's ANDing the field with the first value and
|
||||
# comparing it with the second, and rewrite it as:
|
||||
#
|
||||
# >18 short&074000 000000 C1 R1
|
||||
# >18 short&074000 004000 C2 R1
|
||||
# >18 short&074000 010000 C3 R1
|
||||
# >18 short&074000 074000 TEST
|
||||
#
|
||||
# as SVR3.1's "file" doesn't support anything of the "!074000,000000"
|
||||
# sort, nor does SunOS 4.x, so either it's something Intergraph added
|
||||
# in CLIX, or something AT&T added in SVR3.2 or later, or something
|
||||
# somebody else thought was a good idea; it's not documented in the
|
||||
# man page for this version of "magic", nor does it appear to be
|
||||
# implemented (at least not after I blew off the bogus code to turn
|
||||
# old-style "&"s into new-style "&"s, which just didn't work at all).
|
||||
#
|
||||
0 short 0575 CLIPPER COFF executable (VAX #)
|
||||
>20 short 0407 (impure)
|
||||
>20 short 0410 (5.2 compatible)
|
||||
>20 short 0411 (pure)
|
||||
>20 short 0413 (demand paged)
|
||||
>20 short 0443 (target shared library)
|
||||
>12 long >0 not stripped
|
||||
>22 short >0 - version %ld
|
||||
0 short 0577 CLIPPER COFF executable
|
||||
>18 short&074000 000000 C1 R1
|
||||
>18 short&074000 004000 C2 R1
|
||||
>18 short&074000 010000 C3 R1
|
||||
>18 short&074000 074000 TEST
|
||||
>20 short 0407 (impure)
|
||||
>20 short 0410 (pure)
|
||||
>20 short 0411 (separate I&D)
|
||||
>20 short 0413 (paged)
|
||||
>20 short 0443 (target shared library)
|
||||
>12 long >0 not stripped
|
||||
>22 short >0 - version %ld
|
||||
>48 long&01 01 alignment trap enabled
|
||||
>52 byte 1 -Ctnc
|
||||
>52 byte 2 -Ctsw
|
||||
>52 byte 3 -Ctpw
|
||||
>52 byte 4 -Ctcb
|
||||
>53 byte 1 -Cdnc
|
||||
>53 byte 2 -Cdsw
|
||||
>53 byte 3 -Cdpw
|
||||
>53 byte 4 -Cdcb
|
||||
>54 byte 1 -Csnc
|
||||
>54 byte 2 -Cssw
|
||||
>54 byte 3 -Cspw
|
||||
>54 byte 4 -Cscb
|
||||
4 string pipe CLIPPER instruction trace
|
||||
4 string prof CLIPPER instruction profile
|
|
@ -1,62 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# commands: file(1) magic for various shells and interpreters
|
||||
#
|
||||
0 string : shell archive or script for antique kernel text
|
||||
0 string/b #!\ /bin/sh Bourne shell script text executable
|
||||
0 string/b #!\ /bin/csh C shell script text executable
|
||||
# korn shell magic, sent by George Wu, gwu@clyde.att.com
|
||||
0 string/b #!\ /bin/ksh Korn shell script text executable
|
||||
0 string/b #!\ /bin/tcsh Tenex C shell script text executable
|
||||
0 string/b #!\ /usr/local/tcsh Tenex C shell script text executable
|
||||
0 string/b #!\ /usr/local/bin/tcsh Tenex C shell script text executable
|
||||
|
||||
#
|
||||
# zsh/ash/ae/nawk/gawk magic from cameron@cs.unsw.oz.au (Cameron Simpson)
|
||||
0 string/b #!\ /usr/local/bin/zsh Paul Falstad's zsh script text executable
|
||||
0 string/b #!\ /usr/local/bin/ash Neil Brown's ash script text executable
|
||||
0 string/b #!\ /usr/local/bin/ae Neil Brown's ae script text executable
|
||||
0 string/b #!\ /bin/nawk new awk script text executable
|
||||
0 string/b #!\ /usr/bin/nawk new awk script text executable
|
||||
0 string/b #!\ /usr/local/bin/nawk new awk script text executable
|
||||
0 string/b #!\ /bin/gawk GNU awk script text executable
|
||||
0 string/b #!\ /usr/bin/gawk GNU awk script text executable
|
||||
0 string/b #!\ /usr/local/bin/gawk GNU awk script text executable
|
||||
#
|
||||
0 string/b #!\ /bin/awk awk script text executable
|
||||
0 string/b #!\ /usr/bin/awk awk script text executable
|
||||
0 string BEGIN awk script text
|
||||
|
||||
# AT&T Bell Labs' Plan 9 shell
|
||||
0 string/b #!\ /bin/rc Plan 9 rc shell script text executable
|
||||
|
||||
# bash shell magic, from Peter Tobias (tobias@server.et-inf.fho-emden.de)
|
||||
0 string/b #!\ /bin/bash Bourne-Again shell script text executable
|
||||
0 string/b #!\ /usr/local/bin/bash Bourne-Again shell script text executable
|
||||
|
||||
# using env
|
||||
0 string #!/usr/bin/env a
|
||||
>15 string >\0 %s script text executable
|
||||
0 string #!\ /usr/bin/env a
|
||||
>16 string >\0 %s script text executable
|
||||
|
||||
|
||||
# generic shell magic
|
||||
0 string #!\ / a
|
||||
>3 string >\0 %s script text executable
|
||||
0 string #!\ / a
|
||||
>3 string >\0 %s script text executable
|
||||
0 string #!/ a
|
||||
>2 string >\0 %s script text executable
|
||||
0 string #!\ script text executable
|
||||
>3 string >\0 for %s
|
||||
|
||||
# PHP scripts
|
||||
# Ulf Harnhammar <ulfh@update.uu.se>
|
||||
0 string/c =<?php PHP script text
|
||||
0 string =<?\n PHP script text
|
||||
0 string =<?\r PHP script text
|
||||
0 string/b #!\ /usr/local/bin/php PHP script text executable
|
||||
0 string/b #!\ /usr/bin/php PHP script text executable
|
||||
|
||||
0 string Zend\x00 PHP script Zend Optimizer data
|
|
@ -1,154 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# compress: file(1) magic for pure-compression formats (no archives)
|
||||
#
|
||||
# compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, etc.
|
||||
#
|
||||
# Formats for various forms of compressed data
|
||||
# Formats for "compress" proper have been moved into "compress.c",
|
||||
# because it tries to uncompress it to figure out what's inside.
|
||||
|
||||
# standard unix compress
|
||||
0 string \037\235 compress'd data
|
||||
>2 byte&0x80 >0 block compressed
|
||||
>2 byte&0x1f x %d bits
|
||||
|
||||
# gzip (GNU zip, not to be confused with Info-ZIP or PKWARE zip archiver)
|
||||
# Edited by Chris Chittleborough <cchittleborough@yahoo.com.au>, March 2002
|
||||
# * Original filename is only at offset 10 if "extra field" absent
|
||||
# * Produce shorter output - notably, only report compression methods
|
||||
# other than 8 ("deflate", the only method defined in RFC 1952).
|
||||
0 string \037\213 gzip compressed data
|
||||
>2 byte <8 \b, reserved method
|
||||
>2 byte >8 \b, unknown method
|
||||
>3 byte &0x01 \b, ASCII
|
||||
>3 byte &0x02 \b, continuation
|
||||
>3 byte &0x04 \b, extra field
|
||||
>3 byte&0xC =0x08
|
||||
>>10 string x \b, was "%s"
|
||||
>9 byte =0x00 \b, from MS-DOS
|
||||
>9 byte =0x01 \b, from Amiga
|
||||
>9 byte =0x02 \b, from VMS
|
||||
>9 byte =0x03 \b, from Unix
|
||||
>9 byte =0x05 \b, from Atari
|
||||
>9 byte =0x06 \b, from OS/2
|
||||
>9 byte =0x07 \b, from MacOS
|
||||
>9 byte =0x0A \b, from Tops/20
|
||||
>9 byte =0x0B \b, from Win/32
|
||||
>3 byte &0x10 \b, comment
|
||||
>3 byte &0x20 \b, encrypted
|
||||
### >4 ledate x last modified: %s,
|
||||
>8 byte 2 \b, max compression
|
||||
>8 byte 4 \b, max speed
|
||||
|
||||
# packed data, Huffman (minimum redundancy) codes on a byte-by-byte basis
|
||||
0 string \037\036 packed data
|
||||
>2 belong >1 \b, %d characters originally
|
||||
>2 belong =1 \b, %d character originally
|
||||
#
|
||||
# This magic number is byte-order-independent. XXX - Does that mean this
|
||||
# is big-endian, little-endian, either, or that you can't tell?
|
||||
# this short is valid for SunOS
|
||||
0 short 017437 old packed data
|
||||
|
||||
# XXX - why *two* entries for "compacted data", one of which is
|
||||
# byte-order independent, and one of which is byte-order dependent?
|
||||
#
|
||||
0 short 0x1fff compacted data
|
||||
# This string is valid for SunOS (BE) and a matching "short" is listed
|
||||
# in the Ultrix (LE) magic file.
|
||||
0 string \377\037 compacted data
|
||||
0 short 0145405 huf output
|
||||
|
||||
# bzip2
|
||||
0 string BZh bzip2 compressed data
|
||||
>3 byte >47 \b, block size = %c00k
|
||||
|
||||
# squeeze and crunch
|
||||
# Michael Haardt <michael@cantor.informatik.rwth-aachen.de>
|
||||
0 beshort 0x76FF squeezed data,
|
||||
>4 string x original name %s
|
||||
0 beshort 0x76FE crunched data,
|
||||
>2 string x original name %s
|
||||
0 beshort 0x76FD LZH compressed data,
|
||||
>2 string x original name %s
|
||||
|
||||
# Freeze
|
||||
0 string \037\237 frozen file 2.1
|
||||
0 string \037\236 frozen file 1.0 (or gzip 0.5)
|
||||
|
||||
# SCO compress -H (LZH)
|
||||
0 string \037\240 SCO compress -H (LZH) data
|
||||
|
||||
# European GSM 06.10 is a provisional standard for full-rate speech
|
||||
# transcoding, prI-ETS 300 036, which uses RPE/LTP (residual pulse
|
||||
# excitation/long term prediction) coding at 13 kbit/s.
|
||||
#
|
||||
# There's only a magic nibble (4 bits); that nibble repeats every 33
|
||||
# bytes. This isn't suited for use, but maybe we can use it someday.
|
||||
#
|
||||
# This will cause very short GSM files to be declared as data and
|
||||
# mismatches to be declared as data too!
|
||||
#0 byte&0xF0 0xd0 data
|
||||
#>33 byte&0xF0 0xd0
|
||||
#>66 byte&0xF0 0xd0
|
||||
#>99 byte&0xF0 0xd0
|
||||
#>132 byte&0xF0 0xd0 GSM 06.10 compressed audio
|
||||
|
||||
# bzip a block-sorting file compressor
|
||||
# by Julian Seward <sewardj@cs.man.ac.uk> and others
|
||||
#
|
||||
0 string BZ bzip compressed data
|
||||
>2 byte x \b, version: %c
|
||||
>3 string =1 \b, compression block size 100k
|
||||
>3 string =2 \b, compression block size 200k
|
||||
>3 string =3 \b, compression block size 300k
|
||||
>3 string =4 \b, compression block size 400k
|
||||
>3 string =5 \b, compression block size 500k
|
||||
>3 string =6 \b, compression block size 600k
|
||||
>3 string =7 \b, compression block size 700k
|
||||
>3 string =8 \b, compression block size 800k
|
||||
>3 string =9 \b, compression block size 900k
|
||||
|
||||
# lzop from <markus.oberhumer@jk.uni-linz.ac.at>
|
||||
0 string \x89\x4c\x5a\x4f\x00\x0d\x0a\x1a\x0a lzop compressed data
|
||||
>9 beshort <0x0940
|
||||
>>9 byte&0xf0 =0x00 - version 0.
|
||||
>>9 beshort&0x0fff x \b%03x,
|
||||
>>13 byte 1 LZO1X-1,
|
||||
>>13 byte 2 LZO1X-1(15),
|
||||
>>13 byte 3 LZO1X-999,
|
||||
## >>22 bedate >0 last modified: %s,
|
||||
>>14 byte =0x00 os: MS-DOS
|
||||
>>14 byte =0x01 os: Amiga
|
||||
>>14 byte =0x02 os: VMS
|
||||
>>14 byte =0x03 os: Unix
|
||||
>>14 byte =0x05 os: Atari
|
||||
>>14 byte =0x06 os: OS/2
|
||||
>>14 byte =0x07 os: MacOS
|
||||
>>14 byte =0x0A os: Tops/20
|
||||
>>14 byte =0x0B os: WinNT
|
||||
>>14 byte =0x0E os: Win32
|
||||
>9 beshort >0x0939
|
||||
>>9 byte&0xf0 =0x00 - version 0.
|
||||
>>9 byte&0xf0 =0x10 - version 1.
|
||||
>>9 byte&0xf0 =0x20 - version 2.
|
||||
>>9 beshort&0x0fff x \b%03x,
|
||||
>>15 byte 1 LZO1X-1,
|
||||
>>15 byte 2 LZO1X-1(15),
|
||||
>>15 byte 3 LZO1X-999,
|
||||
## >>25 bedate >0 last modified: %s,
|
||||
>>17 byte =0x00 os: MS-DOS
|
||||
>>17 byte =0x01 os: Amiga
|
||||
>>17 byte =0x02 os: VMS
|
||||
>>17 byte =0x03 os: Unix
|
||||
>>17 byte =0x05 os: Atari
|
||||
>>17 byte =0x06 os: OS/2
|
||||
>>17 byte =0x07 os: MacOS
|
||||
>>17 byte =0x0A os: Tops/20
|
||||
>>17 byte =0x0B os: WinNT
|
||||
>>17 byte =0x0E os: Win32
|
||||
|
||||
# 4.3BSD-Quasijarus Strong Compression
|
||||
# http://minnie.tuhs.org/Quasijarus/compress.html
|
||||
0 string \037\241 Quasijarus strong compressed data
|
|
@ -1,122 +0,0 @@
|
|||
#------------------------------------------------------------------------------
|
||||
# Console game magic
|
||||
# Toby Deshane <hac@shoelace.digivill.net>
|
||||
# ines: file(1) magic for Marat's iNES Nintendo Entertainment System
|
||||
# ROM dump format
|
||||
|
||||
0 string NES\032 iNES ROM dump,
|
||||
>4 byte x %dx16k PRG
|
||||
>5 byte x \b, %dx8k CHR
|
||||
>6 byte&0x01 =0x1 \b, [Vert.]
|
||||
>6 byte&0x01 =0x0 \b, [Horiz.]
|
||||
>6 byte&0x02 =0x2 \b, [SRAM]
|
||||
>6 byte&0x04 =0x4 \b, [Trainer]
|
||||
>6 byte&0x04 =0x8 \b, [4-Scr]
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# gameboy: file(1) magic for the Nintendo (Color) Gameboy raw ROM format
|
||||
#
|
||||
0x104 belong 0xCEED6666 Gameboy ROM:
|
||||
>0x134 string >\0 "%.16s"
|
||||
>0x146 byte 0x03 \b,[SGB]
|
||||
>0x147 byte 0x00 \b, [ROM ONLY]
|
||||
>0x147 byte 0x01 \b, [ROM+MBC1]
|
||||
>0x147 byte 0x02 \b, [ROM+MBC1+RAM]
|
||||
>0x147 byte 0x03 \b, [ROM+MBC1+RAM+BATT]
|
||||
>0x147 byte 0x05 \b, [ROM+MBC2]
|
||||
>0x147 byte 0x06 \b, [ROM+MBC2+BATTERY]
|
||||
>0x147 byte 0x08 \b, [ROM+RAM]
|
||||
>0x147 byte 0x09 \b, [ROM+RAM+BATTERY]
|
||||
>0x147 byte 0x0B \b, [ROM+MMM01]
|
||||
>0x147 byte 0x0C \b, [ROM+MMM01+SRAM]
|
||||
>0x147 byte 0x0D \b, [ROM+MMM01+SRAM+BATT]
|
||||
>0x147 byte 0x0F \b, [ROM+MBC3+TIMER+BATT]
|
||||
>0x147 byte 0x10 \b, [ROM+MBC3+TIMER+RAM+BATT]
|
||||
>0x147 byte 0x11 \b, [ROM+MBC3]
|
||||
>0x147 byte 0x12 \b, [ROM+MBC3+RAM]
|
||||
>0x147 byte 0x13 \b, [ROM+MBC3+RAM+BATT]
|
||||
>0x147 byte 0x19 \b, [ROM+MBC5]
|
||||
>0x147 byte 0x1A \b, [ROM+MBC5+RAM]
|
||||
>0x147 byte 0x1B \b, [ROM+MBC5+RAM+BATT]
|
||||
>0x147 byte 0x1C \b, [ROM+MBC5+RUMBLE]
|
||||
>0x147 byte 0x1D \b, [ROM+MBC5+RUMBLE+SRAM]
|
||||
>0x147 byte 0x1E \b, [ROM+MBC5+RUMBLE+SRAM+BATT]
|
||||
>0x147 byte 0x1F \b, [Pocket Camera]
|
||||
>0x147 byte 0xFD \b, [Bandai TAMA5]
|
||||
>0x147 byte 0xFE \b, [Hudson HuC-3]
|
||||
>0x147 byte 0xFF \b, [Hudson HuC-1]
|
||||
|
||||
>0x148 byte 0 \b, ROM: 256Kbit
|
||||
>0x148 byte 1 \b, ROM: 512Kbit
|
||||
>0x148 byte 2 \b, ROM: 1Mbit
|
||||
>0x148 byte 3 \b, ROM: 2Mbit
|
||||
>0x148 byte 4 \b, ROM: 4Mbit
|
||||
>0x148 byte 5 \b, ROM: 8Mbit
|
||||
>0x148 byte 6 \b, ROM: 16Mbit
|
||||
>0x148 byte 0x52 \b, ROM: 9Mbit
|
||||
>0x148 byte 0x53 \b, ROM: 10Mbit
|
||||
>0x148 byte 0x54 \b, ROM: 12Mbit
|
||||
|
||||
>0x149 byte 1 \b, RAM: 16Kbit
|
||||
>0x149 byte 2 \b, RAM: 64Kbit
|
||||
>0x149 byte 3 \b, RAM: 128Kbit
|
||||
>0x149 byte 4 \b, RAM: 1Mbit
|
||||
|
||||
#>0x14e long x \b, CRC: %x
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# genesis: file(1) magic for the Sega MegaDrive/Genesis raw ROM format
|
||||
#
|
||||
0x100 string SEGA Sega MegaDrive/Genesis raw ROM dump
|
||||
>0x120 string >\0 Name: "%.16s"
|
||||
>0x110 string >\0 %.16s
|
||||
>0x1B0 string RA with SRAM
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# genesis: file(1) magic for the Super MegaDrive ROM dump format
|
||||
#
|
||||
0x280 string EAGN Super MagicDrive ROM dump
|
||||
>0 byte x %dx16k blocks
|
||||
>2 byte 0 \b, last in series or standalone
|
||||
>2 byte >0 \b, split ROM
|
||||
>8 byte 0xAA
|
||||
>9 byte 0xBB
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# genesis: file(1) alternate magic for the Super MegaDrive ROM dump format
|
||||
#
|
||||
0x280 string EAMG Super MagicDrive ROM dump
|
||||
>0 byte x %dx16k blocks
|
||||
>2 byte x \b, last in series or standalone
|
||||
>8 byte 0xAA
|
||||
>9 byte 0xBB
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# smsgg: file(1) magic for Sega Master System and Game Gear ROM dumps
|
||||
#
|
||||
# Does not detect all images. Very preliminary guesswork. Need more data
|
||||
# on format.
|
||||
#
|
||||
# FIXME: need a little more info...;P
|
||||
#
|
||||
#0 byte 0xF3
|
||||
#>1 byte 0xED Sega Master System/Game Gear ROM dump
|
||||
#>1 byte 0x31 Sega Master System/Game Gear ROM dump
|
||||
#>1 byte 0xDB Sega Master System/Game Gear ROM dump
|
||||
#>1 byte 0xAF Sega Master System/Game Gear ROM dump
|
||||
#>1 byte 0xC3 Sega Master System/Game Gear ROM dump
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# dreamcast: file(1) uncertain magic for the Sega Dreamcast VMU image format
|
||||
#
|
||||
0 belong 0x21068028 Sega Dreamcast VMU game image
|
||||
0 string LCDi Dream Animator file
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# v64: file(1) uncertain magic for the V64 format N64 ROM dumps
|
||||
#
|
||||
0 belong 0x37804012 V64 Nintendo 64 ROM dump
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# msx: file(1) magic for MSX game cartridge dumps
|
||||
0 beshort 0x4142 MSX game cartridge dump
|
|
@ -1,69 +0,0 @@
|
|||
#------------------------------------------------------------------------------
|
||||
# convex: file(1) magic for Convex boxes
|
||||
#
|
||||
# Convexes are big-endian.
|
||||
#
|
||||
# /*\
|
||||
# * Below are the magic numbers and tests added for Convex.
|
||||
# * Added at beginning, because they are expected to be used most.
|
||||
# \*/
|
||||
0 belong 0507 Convex old-style object
|
||||
>16 belong >0 not stripped
|
||||
0 belong 0513 Convex old-style demand paged executable
|
||||
>16 belong >0 not stripped
|
||||
0 belong 0515 Convex old-style pre-paged executable
|
||||
>16 belong >0 not stripped
|
||||
0 belong 0517 Convex old-style pre-paged, non-swapped executable
|
||||
>16 belong >0 not stripped
|
||||
0 belong 0x011257 Core file
|
||||
#
|
||||
# The following are a series of dump format magic numbers. Each one
|
||||
# corresponds to a drastically different dump format. The first on is
|
||||
# the original dump format on a 4.1 BSD or earlier file system. The
|
||||
# second marks the change between the 4.1 file system and the 4.2 file
|
||||
# system. The Third marks the changing of the block size from 1K
|
||||
# to 2K to be compatible with an IDC file system. The fourth indicates
|
||||
# a dump that is dependent on Convex Storage Manager, because data in
|
||||
# secondary storage is not physically contained within the dump.
|
||||
# The restore program uses these number to determine how the data is
|
||||
# to be extracted.
|
||||
#
|
||||
24 belong =60011 dump format, 4.1 BSD or earlier
|
||||
24 belong =60012 dump format, 4.2 or 4.3 BSD without IDC
|
||||
24 belong =60013 dump format, 4.2 or 4.3 BSD (IDC compatible)
|
||||
24 belong =60014 dump format, Convex Storage Manager by-reference dump
|
||||
#
|
||||
# what follows is a bunch of bit-mask checks on the flags field of the opthdr.
|
||||
# If there is no `=' sign, assume just checking for whether the bit is set?
|
||||
#
|
||||
0 belong 0601 Convex SOFF
|
||||
>88 belong&0x000f0000 =0x00000000 c1
|
||||
>88 belong &0x00010000 c2
|
||||
>88 belong &0x00020000 c2mp
|
||||
>88 belong &0x00040000 parallel
|
||||
>88 belong &0x00080000 intrinsic
|
||||
>88 belong &0x00000001 demand paged
|
||||
>88 belong &0x00000002 pre-paged
|
||||
>88 belong &0x00000004 non-swapped
|
||||
>88 belong &0x00000008 POSIX
|
||||
#
|
||||
>84 belong &0x80000000 executable
|
||||
>84 belong &0x40000000 object
|
||||
>84 belong&0x20000000 =0 not stripped
|
||||
>84 belong&0x18000000 =0x00000000 native fpmode
|
||||
>84 belong&0x18000000 =0x10000000 ieee fpmode
|
||||
>84 belong&0x18000000 =0x18000000 undefined fpmode
|
||||
#
|
||||
0 belong 0605 Convex SOFF core
|
||||
#
|
||||
0 belong 0607 Convex SOFF checkpoint
|
||||
>88 belong&0x000f0000 =0x00000000 c1
|
||||
>88 belong &0x00010000 c2
|
||||
>88 belong &0x00020000 c2mp
|
||||
>88 belong &0x00040000 parallel
|
||||
>88 belong &0x00080000 intrinsic
|
||||
>88 belong &0x00000008 POSIX
|
||||
#
|
||||
>84 belong&0x18000000 =0x00000000 native fpmode
|
||||
>84 belong&0x18000000 =0x10000000 ieee fpmode
|
||||
>84 belong&0x18000000 =0x18000000 undefined fpmode
|
|
@ -1,5 +0,0 @@
|
|||
|
||||
# ----------------------------------------------------------------------------
|
||||
# ctags: file (1) magic for Exuberant Ctags files
|
||||
# From: Alexander Mai <mai@migdal.ikp.physik.tu-darmstadt.de>
|
||||
0 string !_TAG Exuberant Ctags tag file
|
|
@ -1,6 +0,0 @@
|
|||
#------------------------------------------------------------------------------
|
||||
# file(1) magic for cvs(1) files
|
||||
# From Hendrik Scholz <hendrik@scholz.net>
|
||||
|
||||
0 string /1\ :pserver: cvs password text file
|
||||
|
|
@ -1,80 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# database: file(1) magic for various databases
|
||||
#
|
||||
# extracted from header/code files by Graeme Wilford (eep2gw@ee.surrey.ac.uk)
|
||||
#
|
||||
#
|
||||
# GDBM magic numbers
|
||||
# Will be maintained as part of the GDBM distribution in the future.
|
||||
# <downsj@teeny.org>
|
||||
0 belong 0x13579ace GNU dbm 1.x or ndbm database, big endian
|
||||
0 lelong 0x13579ace GNU dbm 1.x or ndbm database, little endian
|
||||
0 string GDBM GNU dbm 2.x database
|
||||
#
|
||||
# Berkeley DB
|
||||
#
|
||||
# Ian Darwin's file /etc/magic files: big/little-endian version.
|
||||
#
|
||||
# Hash 1.85/1.86 databases store metadata in network byte order.
|
||||
# Btree 1.85/1.86 databases store the metadata in host byte order.
|
||||
# Hash and Btree 2.X and later databases store the metadata in host byte order.
|
||||
|
||||
0 long 0x00061561 Berkeley DB
|
||||
>8 belong 4321
|
||||
>>4 belong >2 1.86
|
||||
>>4 belong <3 1.85
|
||||
>>4 belong >0 (Hash, version %d, native byte-order)
|
||||
>8 belong 1234
|
||||
>>4 belong >2 1.86
|
||||
>>4 belong <3 1.85
|
||||
>>4 belong >0 (Hash, version %d, little-endian)
|
||||
|
||||
0 belong 0x00061561 Berkeley DB
|
||||
>8 belong 4321
|
||||
>>4 belong >2 1.86
|
||||
>>4 belong <3 1.85
|
||||
>>4 belong >0 (Hash, version %d, big-endian)
|
||||
>8 belong 1234
|
||||
>>4 belong >2 1.86
|
||||
>>4 belong <3 1.85
|
||||
>>4 belong >0 (Hash, version %d, native byte-order)
|
||||
|
||||
0 long 0x00053162 Berkeley DB 1.85/1.86
|
||||
>4 long >0 (Btree, version %d, native byte-order)
|
||||
0 belong 0x00053162 Berkeley DB 1.85/1.86
|
||||
>4 belong >0 (Btree, version %d, big-endian)
|
||||
0 lelong 0x00053162 Berkeley DB 1.85/1.86
|
||||
>4 lelong >0 (Btree, version %d, little-endian)
|
||||
|
||||
12 long 0x00061561 Berkeley DB
|
||||
>16 long >0 (Hash, version %d, native byte-order)
|
||||
12 belong 0x00061561 Berkeley DB
|
||||
>16 belong >0 (Hash, version %d, big-endian)
|
||||
12 lelong 0x00061561 Berkeley DB
|
||||
>16 lelong >0 (Hash, version %d, little-endian)
|
||||
|
||||
12 long 0x00053162 Berkeley DB
|
||||
>16 long >0 (Btree, version %d, native byte-order)
|
||||
12 belong 0x00053162 Berkeley DB
|
||||
>16 belong >0 (Btree, version %d, big-endian)
|
||||
12 lelong 0x00053162 Berkeley DB
|
||||
>16 lelong >0 (Btree, version %d, little-endian)
|
||||
|
||||
12 long 0x00042253 Berkeley DB
|
||||
>16 long >0 (Queue, version %d, native byte-order)
|
||||
12 belong 0x00042253 Berkeley DB
|
||||
>16 belong >0 (Queue, version %d, big-endian)
|
||||
12 lelong 0x00042253 Berkeley DB
|
||||
>16 lelong >0 (Queue, version %d, little-endian)
|
||||
#
|
||||
#
|
||||
# Round Robin Database Tool by Tobias Oetiker <oetiker@ee.ethz.ch>
|
||||
0 string RRD RRDTool DB
|
||||
>4 string x version %s
|
||||
#----------------------------------------------------------------------
|
||||
# ROOT: file(1) magic for ROOT databases
|
||||
#
|
||||
0 string root\0 ROOT file
|
||||
>4 belong x Version %d
|
||||
>33 belong x (Compression: %d)
|
|
@ -1,11 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# diamond: file(1) magic for Diamond system
|
||||
#
|
||||
# ... diamond is a multi-media mail and electronic conferencing system....
|
||||
#
|
||||
# XXX - I think it was either renamed Slate, or replaced by Slate....
|
||||
#
|
||||
# The full deal is too long...
|
||||
#0 string <list>\n<protocol\ bbn-multimedia-format> Diamond Multimedia Document
|
||||
0 string =<list>\n<protocol\ bbn-m Diamond Multimedia Document
|
|
@ -1,13 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# diff: file(1) magic for diff(1) output
|
||||
#
|
||||
0 string diff\ 'diff' output text
|
||||
0 string ***\ 'diff' output text
|
||||
0 string Only\ in\ 'diff' output text
|
||||
0 string Common\ subdirectories:\ 'diff' output text
|
||||
|
||||
# xdelta is like diff(1) for binary files (works for text, too).
|
||||
# Available from: ftp://ftp.xcf.berkeley.edu/pub/xdelta/
|
||||
0 string %XDZ xdelta diff file
|
||||
>4 string >% version %.3s
|
|
@ -1,41 +0,0 @@
|
|||
# Digital UNIX - Info
|
||||
#
|
||||
0 string !<arch>\n________64E Alpha archive
|
||||
>22 string X -- out of date
|
||||
#
|
||||
# Alpha COFF Based Executables
|
||||
# The stripped stuff really needs to be an 8 byte (64 bit) compare,
|
||||
# but this works
|
||||
0 leshort 0x183 COFF format alpha
|
||||
>22 leshort&020000 &010000 sharable library,
|
||||
>22 leshort&020000 ^010000 dynamically linked,
|
||||
>24 leshort 0410 pure
|
||||
>24 leshort 0413 demand paged
|
||||
>8 lelong >0 executable or object module, not stripped
|
||||
>8 lelong 0
|
||||
>>12 lelong 0 executable or object module, stripped
|
||||
>>12 lelong >0 executable or object module, not stripped
|
||||
>27 byte >0 - version %d.
|
||||
>26 byte >0 %d-
|
||||
>28 leshort >0 %d
|
||||
#
|
||||
# The next is incomplete, we could tell more about this format,
|
||||
# but its not worth it.
|
||||
0 leshort 0x188 Alpha compressed COFF
|
||||
0 leshort 0x18f Alpha u-code object
|
||||
#
|
||||
#
|
||||
# Some other interesting Digital formats,
|
||||
0 string \377\377\177 ddis/ddif
|
||||
0 string \377\377\174 ddis/dots archive
|
||||
0 string \377\377\176 ddis/dtif table data
|
||||
0 string \033c\033 LN03 output
|
||||
0 long 04553207 X image
|
||||
#
|
||||
0 string !<PDF>!\n profiling data file
|
||||
#
|
||||
# Locale data tables (MIPS and Alpha).
|
||||
#
|
||||
0 short 0x0501 locale data table
|
||||
>6 short 0x24 for MIPS
|
||||
>6 short 0x40 for Alpha
|
|
@ -1,57 +0,0 @@
|
|||
# ATSC A/53 aka AC-3 aka Dolby Digital <ashitaka@gmx.at>
|
||||
# from http://www.atsc.org/standards/a_52a.pdf
|
||||
# corrections, additions, etc. are always welcome!
|
||||
#
|
||||
# syncword
|
||||
0 beshort 0x0b77 ATSC A/52 aka AC-3 aka Dolby Digital stream,
|
||||
# fscod
|
||||
>4 byte&0xc0 0x00 48 kHz,
|
||||
>4 byte&0xc0 0x40 44.1 kHz,
|
||||
>4 byte&0xc0 0x80 32 kHz,
|
||||
# is this one used for 96 kHz?
|
||||
>4 byte&0xc0 0xc0 reserved frequency,
|
||||
#
|
||||
>5 byte&7 = 0 \b, complete main (CM)
|
||||
>5 byte&7 = 1 \b, music and effects (ME)
|
||||
>5 byte&7 = 2 \b, visually impaired (VI)
|
||||
>5 byte&7 = 3 \b, hearing impaired (HI)
|
||||
>5 byte&7 = 4 \b, dialogue (D)
|
||||
>5 byte&7 = 5 \b, commentary (C)
|
||||
>5 byte&7 = 6 \b, emergency (E)
|
||||
# acmod
|
||||
>6 byte&0xe0 0x00 1+1 front,
|
||||
>6 byte&0xe0 0x20 1 front/0 rear,
|
||||
>6 byte&0xe0 0x40 2 front/0 rear,
|
||||
>6 byte&0xe0 0x60 3 front/0 rear,
|
||||
>6 byte&0xe0 0x80 2 front/1 rear,
|
||||
>6 byte&0xe0 0xa0 3 front/1 rear,
|
||||
>6 byte&0xe0 0xc0 2 front/2 rear,
|
||||
>6 byte&0xe0 0xe0 3 front/2 rear,
|
||||
# lfeon (these may be incorrect)
|
||||
>7 byte&0x40 0x00 LFE off,
|
||||
>7 byte&0x40 0x40 LFE on,
|
||||
#
|
||||
>4 byte&0x3e = 0x00 \b, 32 kbit/s
|
||||
>4 byte&0x3e = 0x02 \b, 40 kbit/s
|
||||
>4 byte&0x3e = 0x04 \b, 48 kbit/s
|
||||
>4 byte&0x3e = 0x06 \b, 56 kbit/s
|
||||
>4 byte&0x3e = 0x08 \b, 64 kbit/s
|
||||
>4 byte&0x3e = 0x0a \b, 80 kbit/s
|
||||
>4 byte&0x3e = 0x0c \b, 96 kbit/s
|
||||
>4 byte&0x3e = 0x0e \b, 112 kbit/s
|
||||
>4 byte&0x3e = 0x10 \b, 128 kbit/s
|
||||
>4 byte&0x3e = 0x12 \b, 160 kbit/s
|
||||
>4 byte&0x3e = 0x14 \b, 192 kbit/s
|
||||
>4 byte&0x3e = 0x16 \b, 224 kbit/s
|
||||
>4 byte&0x3e = 0x18 \b, 256 kbit/s
|
||||
>4 byte&0x3e = 0x1a \b, 320 kbit/s
|
||||
>4 byte&0x3e = 0x1c \b, 384 kbit/s
|
||||
>4 byte&0x3e = 0x1e \b, 448 kbit/s
|
||||
>4 byte&0x3e = 0x20 \b, 512 kbit/s
|
||||
>4 byte&0x3e = 0x22 \b, 576 kbit/s
|
||||
>4 byte&0x3e = 0x24 \b, 640 kbit/s
|
||||
# dsurmod (these may be incorrect)
|
||||
>6 beshort&0x0180 0x0000 Dolby Surround not indicated
|
||||
>6 beshort&0x0180 0x0080 not Dolby Surround encoded
|
||||
>6 beshort&0x0180 0x0100 Dolby Surround encoded
|
||||
>6 beshort&0x0180 0x0180 reserved Dolby Surround mode
|
|
@ -1,81 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# dump: file(1) magic for dump file format--for new and old dump filesystems
|
||||
#
|
||||
# We specify both byte orders in order to recognize byte-swapped dumps.
|
||||
#
|
||||
24 belong 60012 new-fs dump file (big endian),
|
||||
>4 bedate x Previous dump %s,
|
||||
>8 bedate x This dump %s,
|
||||
>12 belong >0 Volume %ld,
|
||||
>692 belong 0 Level zero, type:
|
||||
>692 belong >0 Level %d, type:
|
||||
>0 belong 1 tape header,
|
||||
>0 belong 2 beginning of file record,
|
||||
>0 belong 3 map of inodes on tape,
|
||||
>0 belong 4 continuation of file record,
|
||||
>0 belong 5 end of volume,
|
||||
>0 belong 6 map of inodes deleted,
|
||||
>0 belong 7 end of medium (for floppy),
|
||||
>676 string >\0 Label %s,
|
||||
>696 string >\0 Filesystem %s,
|
||||
>760 string >\0 Device %s,
|
||||
>824 string >\0 Host %s,
|
||||
>888 belong >0 Flags %x
|
||||
|
||||
24 belong 60011 old-fs dump file (big endian),
|
||||
#>4 bedate x Previous dump %s,
|
||||
#>8 bedate x This dump %s,
|
||||
>12 belong >0 Volume %ld,
|
||||
>692 belong 0 Level zero, type:
|
||||
>692 belong >0 Level %d, type:
|
||||
>0 belong 1 tape header,
|
||||
>0 belong 2 beginning of file record,
|
||||
>0 belong 3 map of inodes on tape,
|
||||
>0 belong 4 continuation of file record,
|
||||
>0 belong 5 end of volume,
|
||||
>0 belong 6 map of inodes deleted,
|
||||
>0 belong 7 end of medium (for floppy),
|
||||
>676 string >\0 Label %s,
|
||||
>696 string >\0 Filesystem %s,
|
||||
>760 string >\0 Device %s,
|
||||
>824 string >\0 Host %s,
|
||||
>888 belong >0 Flags %x
|
||||
|
||||
24 lelong 60012 new-fs dump file (little endian),
|
||||
>4 ledate x This dump %s,
|
||||
>8 ledate x Previous dump %s,
|
||||
>12 lelong >0 Volume %ld,
|
||||
>692 lelong 0 Level zero, type:
|
||||
>692 lelong >0 Level %d, type:
|
||||
>0 lelong 1 tape header,
|
||||
>0 lelong 2 beginning of file record,
|
||||
>0 lelong 3 map of inodes on tape,
|
||||
>0 lelong 4 continuation of file record,
|
||||
>0 lelong 5 end of volume,
|
||||
>0 lelong 6 map of inodes deleted,
|
||||
>0 lelong 7 end of medium (for floppy),
|
||||
>676 string >\0 Label %s,
|
||||
>696 string >\0 Filesystem %s,
|
||||
>760 string >\0 Device %s,
|
||||
>824 string >\0 Host %s,
|
||||
>888 lelong >0 Flags %x
|
||||
|
||||
24 lelong 60011 old-fs dump file (little endian),
|
||||
#>4 ledate x Previous dump %s,
|
||||
#>8 ledate x This dump %s,
|
||||
>12 lelong >0 Volume %ld,
|
||||
>692 lelong 0 Level zero, type:
|
||||
>692 lelong >0 Level %d, type:
|
||||
>0 lelong 1 tape header,
|
||||
>0 lelong 2 beginning of file record,
|
||||
>0 lelong 3 map of inodes on tape,
|
||||
>0 lelong 4 continuation of file record,
|
||||
>0 lelong 5 end of volume,
|
||||
>0 lelong 6 map of inodes deleted,
|
||||
>0 lelong 7 end of medium (for floppy),
|
||||
>676 string >\0 Label %s,
|
||||
>696 string >\0 Filesystem %s,
|
||||
>760 string >\0 Device %s,
|
||||
>824 string >\0 Host %s,
|
||||
>888 lelong >0 Flags %x
|
|
@ -1,12 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# Dyadic: file(1) magic for Dyalog APL.
|
||||
#
|
||||
0 byte 0xaa
|
||||
>1 byte <4 Dyalog APL
|
||||
>>1 byte 0x00 incomplete workspace
|
||||
>>1 byte 0x01 component file
|
||||
>>1 byte 0x02 external variable
|
||||
>>1 byte 0x03 workspace
|
||||
>>2 byte x version %d
|
||||
>>3 byte x .%d
|
|
@ -1,13 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# T602 editor documents
|
||||
# by David Necas <yeti@physics.muni.cz>
|
||||
0 string @CT\ T602 document data,
|
||||
>4 string 0 Kamenicky
|
||||
>4 string 1 CP 852
|
||||
>4 string 2 KOI8-CS
|
||||
>4 string >2 unknown encoding
|
||||
|
||||
# Vi IMproved Encrypted file
|
||||
# by David Necas <yeti@physics.muni.cz>
|
||||
0 string VimCrypt~ Vim encrypted file data
|
|
@ -1,208 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# elf: file(1) magic for ELF executables
|
||||
#
|
||||
# We have to check the byte order flag to see what byte order all the
|
||||
# other stuff in the header is in.
|
||||
#
|
||||
# What're the correct byte orders for the nCUBE and the Fujitsu VPP500?
|
||||
#
|
||||
# updated by Daniel Quinlan (quinlan@yggdrasil.com)
|
||||
0 string \177ELF ELF
|
||||
>4 byte 0 invalid class
|
||||
>4 byte 1 32-bit
|
||||
# only for MIPS - in the future, the ABI field of e_flags should be used.
|
||||
>>18 beshort 8
|
||||
>>18 beshort 10
|
||||
>>>36 belong &0x20 N32
|
||||
>4 byte 2 64-bit
|
||||
>5 byte 0 invalid byte order
|
||||
>5 byte 1 LSB
|
||||
# The official e_machine number for MIPS is now #8, regardless of endianness.
|
||||
# The second number (#10) will be deprecated later. For now, we still
|
||||
# say something if #10 is encountered, but only gory details for #8.
|
||||
>>18 leshort 8
|
||||
# only for 32-bit
|
||||
>>>4 byte 1
|
||||
>>>>36 lelong&0xf0000000 0x00000000 MIPS-I
|
||||
>>>>36 lelong&0xf0000000 0x10000000 MIPS-II
|
||||
>>>>36 lelong&0xf0000000 0x20000000 MIPS-III
|
||||
>>>>36 lelong&0xf0000000 0x30000000 MIPS-IV
|
||||
>>>>36 lelong&0xf0000000 0x40000000 MIPS-V
|
||||
>>>>36 lelong&0xf0000000 0x60000000 MIPS32
|
||||
>>>>36 lelong&0xf0000000 0x70000000 MIPS64
|
||||
>>>>36 lelong&0xf0000000 0x80000000 MIPS32 rel2
|
||||
>>>>36 lelong&0xf0000000 0x90000000 MIPS64 rel2
|
||||
# only for 64-bit
|
||||
>>>4 byte 2
|
||||
>>>>48 lelong&0xf0000000 0x00000000 MIPS-I
|
||||
>>>>48 lelong&0xf0000000 0x10000000 MIPS-II
|
||||
>>>>48 lelong&0xf0000000 0x20000000 MIPS-III
|
||||
>>>>48 lelong&0xf0000000 0x30000000 MIPS-IV
|
||||
>>>>48 lelong&0xf0000000 0x40000000 MIPS-V
|
||||
>>>>48 lelong&0xf0000000 0x60000000 MIPS32
|
||||
>>>>48 lelong&0xf0000000 0x70000000 MIPS64
|
||||
>>>>48 lelong&0xf0000000 0x80000000 MIPS32 rel2
|
||||
>>>>48 lelong&0xf0000000 0x90000000 MIPS64 rel2
|
||||
>>16 leshort 0 no file type,
|
||||
>>16 leshort 1 relocatable,
|
||||
>>16 leshort 2 executable,
|
||||
>>16 leshort 3 shared object,
|
||||
# Core handling from Peter Tobias <tobias@server.et-inf.fho-emden.de>
|
||||
# corrections by Christian 'Dr. Disk' Hechelmann <drdisk@ds9.au.s.shuttle.de>
|
||||
>>16 leshort 4 core file
|
||||
# Core file detection is not reliable.
|
||||
#>>>(0x38+0xcc) string >\0 of '%s'
|
||||
#>>>(0x38+0x10) lelong >0 (signal %d),
|
||||
>>16 leshort &0xff00 processor-specific,
|
||||
>>18 leshort 0 no machine,
|
||||
>>18 leshort 1 AT&T WE32100 - invalid byte order,
|
||||
>>18 leshort 2 SPARC - invalid byte order,
|
||||
>>18 leshort 3 Intel 80386,
|
||||
>>18 leshort 4 Motorola
|
||||
>>>36 lelong &0x01000000 68000 - invalid byte order,
|
||||
>>>36 lelong &0x00810000 CPU32 - invalid byte order,
|
||||
>>>36 lelong 0 68020 - invalid byte order,
|
||||
>>18 leshort 5 Motorola 88000 - invalid byte order,
|
||||
>>18 leshort 6 Intel 80486,
|
||||
>>18 leshort 7 Intel 80860,
|
||||
>>18 leshort 8 MIPS,
|
||||
>>18 leshort 9 Amdahl - invalid byte order,
|
||||
>>18 leshort 10 MIPS (deprecated),
|
||||
>>18 leshort 11 RS6000 - invalid byte order,
|
||||
>>18 leshort 15 PA-RISC - invalid byte order,
|
||||
>>>50 leshort 0x0214 2.0
|
||||
>>>48 leshort &0x0008 (LP64),
|
||||
>>18 leshort 16 nCUBE,
|
||||
>>18 leshort 17 Fujitsu VPP500,
|
||||
>>18 leshort 18 SPARC32PLUS,
|
||||
>>18 leshort 20 PowerPC,
|
||||
>>18 leshort 36 NEC V800,
|
||||
>>18 leshort 37 Fujitsu FR20,
|
||||
>>18 leshort 38 TRW RH-32,
|
||||
>>18 leshort 39 Motorola RCE,
|
||||
>>18 leshort 40 ARM,
|
||||
>>18 leshort 41 Alpha,
|
||||
>>18 leshort 42 Hitachi SH,
|
||||
>>18 leshort 43 SPARC V9 - invalid byte order,
|
||||
>>18 leshort 44 Siemens Tricore Embedded Processor,
|
||||
>>18 leshort 45 Argonaut RISC Core, Argonaut Technologies Inc.,
|
||||
>>18 leshort 46 Hitachi H8/300,
|
||||
>>18 leshort 47 Hitachi H8/300H,
|
||||
>>18 leshort 48 Hitachi H8S,
|
||||
>>18 leshort 49 Hitachi H8/500,
|
||||
>>18 leshort 50 IA-64 (Intel 64 bit architecture)
|
||||
>>18 leshort 51 Stanford MIPS-X,
|
||||
>>18 leshort 52 Motorola Coldfire,
|
||||
>>18 leshort 53 Motorola M68HC12,
|
||||
>>18 leshort 62 AMD x86-64,
|
||||
>>18 leshort 75 Digital VAX,
|
||||
>>18 leshort 97 NatSemi 32k,
|
||||
>>18 leshort 0x9026 Alpha (unofficial),
|
||||
>>20 lelong 0 invalid version
|
||||
>>20 lelong 1 version 1
|
||||
>>36 lelong 1 MathCoPro/FPU/MAU Required
|
||||
>5 byte 2 MSB
|
||||
# only for MIPS - see comment in little-endian section above.
|
||||
>>18 beshort 8
|
||||
# only for 32-bit
|
||||
>>>4 byte 1
|
||||
>>>>36 belong&0xf0000000 0x00000000 MIPS-I
|
||||
>>>>36 belong&0xf0000000 0x10000000 MIPS-II
|
||||
>>>>36 belong&0xf0000000 0x20000000 MIPS-III
|
||||
>>>>36 belong&0xf0000000 0x30000000 MIPS-IV
|
||||
>>>>36 belong&0xf0000000 0x40000000 MIPS-V
|
||||
>>>>36 belong&0xf0000000 0x60000000 MIPS32
|
||||
>>>>36 belong&0xf0000000 0x70000000 MIPS64
|
||||
>>>>36 belong&0xf0000000 0x80000000 MIPS32 rel2
|
||||
>>>>36 belong&0xf0000000 0x90000000 MIPS64 rel2
|
||||
# only for 64-bit
|
||||
>>>4 byte 2
|
||||
>>>>48 belong&0xf0000000 0x00000000 MIPS-I
|
||||
>>>>48 belong&0xf0000000 0x10000000 MIPS-II
|
||||
>>>>48 belong&0xf0000000 0x20000000 MIPS-III
|
||||
>>>>48 belong&0xf0000000 0x30000000 MIPS-IV
|
||||
>>>>48 belong&0xf0000000 0x40000000 MIPS-V
|
||||
>>>>48 belong&0xf0000000 0x60000000 MIPS32
|
||||
>>>>48 belong&0xf0000000 0x70000000 MIPS64
|
||||
>>>>48 belong&0xf0000000 0x80000000 MIPS32 rel2
|
||||
>>>>48 belong&0xf0000000 0x90000000 MIPS64 rel2
|
||||
>>16 beshort 0 no file type,
|
||||
>>16 beshort 1 relocatable,
|
||||
>>16 beshort 2 executable,
|
||||
>>16 beshort 3 shared object,
|
||||
>>16 beshort 4 core file,
|
||||
#>>>(0x38+0xcc) string >\0 of '%s'
|
||||
#>>>(0x38+0x10) belong >0 (signal %d),
|
||||
>>16 beshort &0xff00 processor-specific,
|
||||
>>18 beshort 0 no machine,
|
||||
>>18 beshort 1 AT&T WE32100,
|
||||
>>18 beshort 2 SPARC,
|
||||
>>18 beshort 3 Intel 80386 - invalid byte order,
|
||||
>>18 beshort 4 Motorola
|
||||
>>>36 belong &0x01000000 68000,
|
||||
>>>36 belong &0x00810000 CPU32,
|
||||
>>>36 belong 0 68020,
|
||||
>>18 beshort 5 Motorola 88000,
|
||||
>>18 beshort 6 Intel 80486 - invalid byte order,
|
||||
>>18 beshort 7 Intel 80860,
|
||||
>>18 beshort 8 MIPS,
|
||||
>>18 beshort 9 Amdahl,
|
||||
>>18 beshort 10 MIPS (deprecated),
|
||||
>>18 beshort 11 RS6000,
|
||||
>>18 beshort 15 PA-RISC
|
||||
>>>50 beshort 0x0214 2.0
|
||||
>>>48 beshort &0x0008 (LP64)
|
||||
>>18 beshort 16 nCUBE,
|
||||
>>18 beshort 17 Fujitsu VPP500,
|
||||
>>18 beshort 18 SPARC32PLUS,
|
||||
>>>36 belong&0xffff00 &0x000100 V8+ Required,
|
||||
>>>36 belong&0xffff00 &0x000200 Sun UltraSPARC1 Extensions Required,
|
||||
>>>36 belong&0xffff00 &0x000400 HaL R1 Extensions Required,
|
||||
>>>36 belong&0xffff00 &0x000800 Sun UltraSPARC3 Extensions Required,
|
||||
>>18 beshort 20 PowerPC or cisco 4500,
|
||||
>>18 beshort 21 cisco 7500,
|
||||
>>18 beshort 24 cisco SVIP,
|
||||
>>18 beshort 25 cisco 7200,
|
||||
>>18 beshort 36 NEC V800 or cisco 12000,
|
||||
>>18 beshort 37 Fujitsu FR20,
|
||||
>>18 beshort 38 TRW RH-32,
|
||||
>>18 beshort 39 Motorola RCE,
|
||||
>>18 beshort 40 ARM,
|
||||
>>18 beshort 41 Alpha,
|
||||
>>18 beshort 42 Hitachi SH,
|
||||
>>18 beshort 43 SPARC V9,
|
||||
>>18 beshort 44 Siemens Tricore Embedded Processor,
|
||||
>>18 beshort 45 Argonaut RISC Core, Argonaut Technologies Inc.,
|
||||
>>18 beshort 46 Hitachi H8/300,
|
||||
>>18 beshort 47 Hitachi H8/300H,
|
||||
>>18 beshort 48 Hitachi H8S,
|
||||
>>18 beshort 49 Hitachi H8/500,
|
||||
>>18 beshort 50 Intel Merced Processor,
|
||||
>>18 beshort 51 Stanford MIPS-X,
|
||||
>>18 beshort 52 Motorola Coldfire,
|
||||
>>18 beshort 53 Motorola M68HC12,
|
||||
>>18 beshort 73 Cray NV1,
|
||||
>>18 beshort 75 Digital VAX,
|
||||
>>18 beshort 97 NatSemi 32k,
|
||||
>>18 beshort 0x9026 Alpha (unofficial),
|
||||
>>20 belong 0 invalid version
|
||||
>>20 belong 1 version 1
|
||||
>>36 belong 1 MathCoPro/FPU/MAU Required
|
||||
>8 string >\0 (%s)
|
||||
>8 string \0
|
||||
>>7 byte 0 (SYSV)
|
||||
>>7 byte 1 (HP-UX)
|
||||
>>7 byte 2 (NetBSD)
|
||||
>>7 byte 3 (GNU/Linux)
|
||||
>>7 byte 4 (GNU/Hurd)
|
||||
>>7 byte 5 (86Open)
|
||||
>>7 byte 6 (Solaris)
|
||||
>>7 byte 7 (Monterey)
|
||||
>>7 byte 8 (IRIX)
|
||||
>>7 byte 9 (FreeBSD)
|
||||
>>7 byte 10 (Tru64)
|
||||
>>7 byte 11 (Novell Modesto)
|
||||
>>7 byte 12 (OpenBSD)
|
||||
>>7 byte 97 (ARM)
|
||||
>>7 byte 255 (embedded)
|
|
@ -1,21 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# encore: file(1) magic for Encore machines
|
||||
#
|
||||
# XXX - needs to have the byte order specified (NS32K was little-endian,
|
||||
# dunno whether they run the 88K in little-endian mode or not).
|
||||
#
|
||||
0 short 0x154 Encore
|
||||
>20 short 0x107 executable
|
||||
>20 short 0x108 pure executable
|
||||
>20 short 0x10b demand-paged executable
|
||||
>20 short 0x10f unsupported executable
|
||||
>12 long >0 not stripped
|
||||
>22 short >0 - version %ld
|
||||
>22 short 0 -
|
||||
#>4 date x stamp %s
|
||||
0 short 0x155 Encore unsupported executable
|
||||
>12 long >0 not stripped
|
||||
>22 short >0 - version %ld
|
||||
>22 short 0 -
|
||||
#>4 date x stamp %s
|
|
@ -1,10 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# Epoc 32 : file(1) magic for Epoc Documents [psion/osaris
|
||||
# Stefan Praszalowicz (hpicollo@worldnet.fr)
|
||||
#0 lelong 0x10000037 Epoc32
|
||||
>4 lelong 0x1000006D
|
||||
>>8 lelong 0x1000007F Word
|
||||
>>8 lelong 0x10000088 Sheet
|
||||
>>8 lelong 0x1000007D Sketch
|
||||
>>8 lelong 0x10000085 TextEd
|
|
@ -1,205 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# filesystems: file(1) magic for different filesystems
|
||||
#
|
||||
0 string \366\366\366\366 PC formatted floppy with no filesystem
|
||||
# Sun disk labels
|
||||
# From /usr/include/sun/dklabel.h:
|
||||
0774 beshort 0xdabe Sun disk label
|
||||
>0 string x '%s
|
||||
>>31 string >\0 \b%s
|
||||
>>>63 string >\0 \b%s
|
||||
>>>>95 string >\0 \b%s
|
||||
>0 string x \b'
|
||||
>0734 short >0 %d rpm,
|
||||
>0736 short >0 %d phys cys,
|
||||
>0740 short >0 %d alts/cyl,
|
||||
>0746 short >0 %d interleave,
|
||||
>0750 short >0 %d data cyls,
|
||||
>0752 short >0 %d alt cyls,
|
||||
>0754 short >0 %d heads/partition,
|
||||
>0756 short >0 %d sectors/track,
|
||||
>0764 long >0 start cyl %ld,
|
||||
>0770 long x %ld blocks
|
||||
# Is there a boot block written 1 sector in?
|
||||
>512 belong&077777777 0600407 \b, boot block present
|
||||
0x1FE leshort 0xAA55 x86 boot sector
|
||||
>2 string OSBS \b, OS/BS MBR
|
||||
# J\xf6rg Jenderek <joerg@pcialias.localnet>
|
||||
>0x8C string Invalid\ partition\ table \b, MS-DOS MBR
|
||||
>0x9D string Invalid\ partition\ table \b, DR-DOS MBR, version 7.01 to 7.03
|
||||
>0x10F string Ung\201ltige\ Partitionstabelle \b, MS-DOS MBR, german version 4.10.1998, 4.10.2222
|
||||
>0x8B string Ung\201ltige\ Partitionstabelle \b, MS-DOS MBR, german version 5.00 to 4.00.950
|
||||
>0x145 string Default:\ F \b, FREE-DOS MBR
|
||||
>0 string \0\0\0\0 \b, extended partition table
|
||||
>0 leshort 0x3CEB \b, system
|
||||
>>3 string >\0 %s
|
||||
>>0x36 string FAT \b, %s
|
||||
>>>0x39 string 12 (%s bit)
|
||||
>>>0x39 string 16 (%s bit)
|
||||
>0x52 string FAT32 \b, FAT (32 bit)
|
||||
>>>43 string >NO\ NAME label: %.11s,
|
||||
>>>43 string <NO\ NAME label: %.11s,
|
||||
>>>43 string NO\ NAME unlabeled,
|
||||
>>>19 leshort >0 %d sectors
|
||||
>>>19 leshort 0
|
||||
>>>>32 lelong x %d sectors
|
||||
>0x200 lelong 0x82564557 \b, BSD disklabel
|
||||
|
||||
# Solaris 7 FAT12 floppies J\xf6rg Jenderek <joerg@pcialias.localnet>
|
||||
>0 leshort 0x7AEB \b, system
|
||||
>>3 string >\0 %s
|
||||
>>0x36 string FAT \b, %s
|
||||
>>>0x39 string 12 (%s bit)
|
||||
|
||||
# Minix filesystems - Juan Cespedes <cespedes@debian.org>
|
||||
0x410 leshort 0x137f Minix filesystem
|
||||
0x410 beshort 0x137f Minix filesystem (big endian),
|
||||
>0x402 beshort !0 \b, %d zones
|
||||
>0x1e string minix \b, bootable
|
||||
0x410 leshort 0x138f Minix filesystem, 30 char names
|
||||
0x410 leshort 0x2468 Minix filesystem, version 2
|
||||
0x410 leshort 0x2478 Minix filesystem, version 2, 30 char names
|
||||
|
||||
# romfs filesystems - Juan Cespedes <cespedes@debian.org>
|
||||
0 string -rom1fs-\0 romfs filesystem, version 1
|
||||
>8 belong x %d bytes,
|
||||
>16 string x named %s.
|
||||
|
||||
# netboot image - Juan Cespedes <cespedes@debian.org>
|
||||
0 lelong 0x1b031336L Netboot image,
|
||||
>4 lelong&0xFFFFFF00 0
|
||||
>>4 lelong&0x100 0x000 mode 2
|
||||
>>4 lelong&0x100 0x100 mode 3
|
||||
>4 lelong&0xFFFFFF00 !0 unknown mode
|
||||
|
||||
0x18b string OS/2 OS/2 Boot Manager
|
||||
|
||||
9564 lelong 0x00011954 Unix Fast File system (little-endian),
|
||||
>8404 string x last mounted on %s,
|
||||
#>9504 ledate x last checked at %s,
|
||||
>8224 ledate x last written at %s,
|
||||
>8401 byte x clean flag %d,
|
||||
>8228 lelong x number of blocks %d,
|
||||
>8232 lelong x number of data blocks %d,
|
||||
>8236 lelong x number of cylinder groups %d,
|
||||
>8240 lelong x block size %d,
|
||||
>8244 lelong x fragment size %d,
|
||||
>8252 lelong x minimum percentage of free blocks %d,
|
||||
>8256 lelong x rotational delay %dms,
|
||||
>8260 lelong x disk rotational speed %drps,
|
||||
>8320 lelong 0 TIME optimization
|
||||
>8320 lelong 1 SPACE optimization
|
||||
|
||||
9564 belong 0x00011954 Unix Fast File system (big-endian),
|
||||
>7168 long 0x4c41424c Apple UFS Volume
|
||||
>>7186 string x named %s,
|
||||
>>7176 belong x volume label version %d,
|
||||
>>7180 bedate x created on %s,
|
||||
>8404 string x last mounted on %s,
|
||||
#>9504 bedate x last checked at %s,
|
||||
>8224 bedate x last written at %s,
|
||||
>8401 byte x clean flag %d,
|
||||
>8228 belong x number of blocks %d,
|
||||
>8232 belong x number of data blocks %d,
|
||||
>8236 belong x number of cylinder groups %d,
|
||||
>8240 belong x block size %d,
|
||||
>8244 belong x fragment size %d,
|
||||
>8252 belong x minimum percentage of free blocks %d,
|
||||
>8256 belong x rotational delay %dms,
|
||||
>8260 belong x disk rotational speed %drps,
|
||||
>8320 belong 0 TIME optimization
|
||||
>8320 belong 1 SPACE optimization
|
||||
|
||||
# ext2/ext3 filesystems - Andreas Dilger <adilger@turbolabs.com>
|
||||
0x438 leshort 0xEF53 Linux
|
||||
>0x44c lelong x rev %d
|
||||
>0x43e leshort x \b.%d
|
||||
>0x45c lelong ^0x0000004 ext2 filesystem data
|
||||
>>0x43a leshort ^0x0000001 (mounted or unclean)
|
||||
>0x45c lelong &0x0000004 ext3 filesystem data
|
||||
>>0x460 lelong &0x0000004 (needs journal recovery)
|
||||
>0x43a leshort &0x0000002 (errors)
|
||||
>0x460 lelong &0x0000001 (compressed)
|
||||
#>0x460 lelong &0x0000002 (filetype)
|
||||
#>0x464 lelong &0x0000001 (sparse_super)
|
||||
>0x464 lelong &0x0000002 (large files)
|
||||
|
||||
# SGI disk labels - Nathan Scott <nathans@debian.org>
|
||||
0 belong 0x0BE5A941 SGI disk label (volume header)
|
||||
|
||||
# SGI XFS filesystem - Nathan Scott <nathans@debian.org>
|
||||
0 belong 0x58465342 SGI XFS filesystem data
|
||||
>0x4 belong x (blksz=3D%d,
|
||||
>0x68 beshort x inosz=3D%d,
|
||||
>0x64 beshort ^0x2004 v1 dirs)
|
||||
>0x64 beshort &0x2004 v2 dirs)
|
||||
|
||||
############################################################################
|
||||
# Minix-ST kernel floppy
|
||||
0x800 belong 0x46fc2700 Atari-ST Minix kernel image
|
||||
>19 string \240\5\371\5\0\011\0\2\0 \b, 720k floppy
|
||||
>19 string \320\2\370\5\0\011\0\1\0 \b, 360k floppy
|
||||
|
||||
############################################################################
|
||||
# Hmmm, is this a better way of detecting _standard_ floppy images ?
|
||||
19 string \320\2\360\3\0\011\0\1\0 DOS floppy 360k
|
||||
>0x1FE leshort 0xAA55 \b, x86 hard disk boot sector
|
||||
19 string \240\5\371\3\0\011\0\2\0 DOS floppy 720k
|
||||
>0x1FE leshort 0xAA55 \b, x86 hard disk boot sector
|
||||
19 string \100\013\360\011\0\022\0\2\0 DOS floppy 1440k
|
||||
>0x1FE leshort 0xAA55 \b, x86 hard disk boot sector
|
||||
|
||||
19 string \240\5\371\5\0\011\0\2\0 DOS floppy 720k, IBM
|
||||
>0x1FE leshort 0xAA55 \b, x86 hard disk boot sector
|
||||
19 string \100\013\371\5\0\011\0\2\0 DOS floppy 1440k, mkdosfs
|
||||
>0x1FE leshort 0xAA55 \b, x86 hard disk boot sector
|
||||
|
||||
19 string \320\2\370\5\0\011\0\1\0 Atari-ST floppy 360k
|
||||
19 string \240\5\371\5\0\011\0\2\0 Atari-ST floppy 720k
|
||||
|
||||
# Valid media descriptor bytes for MS-DOS:
|
||||
#
|
||||
# Byte Capacity Media Size and Type
|
||||
# -------------------------------------------------
|
||||
#
|
||||
# F0 2.88 MB 3.5-inch, 2-sided, 36-sector
|
||||
# F0 1.44 MB 3.5-inch, 2-sided, 18-sector
|
||||
# F9 720K 3.5-inch, 2-sided, 9-sector
|
||||
# F9 1.2 MB 5.25-inch, 2-sided, 15-sector
|
||||
# FD 360K 5.25-inch, 2-sided, 9-sector
|
||||
# FF 320K 5.25-inch, 2-sided, 8-sector
|
||||
# FC 180K 5.25-inch, 1-sided, 9-sector
|
||||
# FE 160K 5.25-inch, 1-sided, 8-sector
|
||||
# FE 250K 8-inch, 1-sided, single-density
|
||||
# FD 500K 8-inch, 2-sided, single-density
|
||||
# FE 1.2 MB 8-inch, 2-sided, double-density
|
||||
# F8 ----- Fixed disk
|
||||
#
|
||||
# FC xxxK Apricot 70x1x9 boot disk.
|
||||
#
|
||||
# Originally a bitmap:
|
||||
# xxxxxxx0 Not two sided
|
||||
# xxxxxxx1 Double sided
|
||||
# xxxxxx0x Not 8 SPT
|
||||
# xxxxxx1x 8 SPT
|
||||
# xxxxx0xx Not Removable drive
|
||||
# xxxxx1xx Removable drive
|
||||
# 11111xxx Must be one.
|
||||
#
|
||||
# But now it's rather random:
|
||||
# 111111xx Low density disk
|
||||
# 00 SS, Not 8 SPT
|
||||
# 01 DS, Not 8 SPT
|
||||
# 10 SS, 8 SPT
|
||||
# 11 DS, 8 SPT
|
||||
#
|
||||
# 11111001 Double density 3½ floppy disk, high density 5¼
|
||||
# 11110000 High density 3½ floppy disk
|
||||
# 11111000 Hard disk any format
|
||||
#
|
||||
|
||||
# CDROM Filesystems
|
||||
32769 string CD001 ISO 9660 CD-ROM filesystem data
|
||||
37633 string CD001 ISO 9660 CD-ROM filesystem data (raw 2352 byte sectors)
|
||||
32776 string CDROM High Sierra CD-ROM filesystem data
|
|
@ -1,10 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# flash: file(1) magic for Macromedia Flash file format
|
||||
#
|
||||
# See
|
||||
#
|
||||
# http://www.macromedia.com/software/flash/open/
|
||||
#
|
||||
0 string FWS Macromedia Flash data,
|
||||
>3 byte x version %d
|
|
@ -1,51 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# fonts: file(1) magic for font data
|
||||
#
|
||||
0 string FONT ASCII vfont text
|
||||
0 short 0436 Berkeley vfont data
|
||||
0 short 017001 byte-swapped Berkeley vfont data
|
||||
|
||||
# PostScript fonts (must precede "printer" entries), quinlan@yggdrasil.com
|
||||
0 string %!PS-AdobeFont-1.0 PostScript Type 1 font text
|
||||
>20 string >\0 (%s)
|
||||
6 string %!PS-AdobeFont-1.0 PostScript Type 1 font program data
|
||||
|
||||
# X11 font files in SNF (Server Natural Format) format
|
||||
0 belong 00000004 X11 SNF font data, MSB first
|
||||
0 lelong 00000004 X11 SNF font data, LSB first
|
||||
|
||||
# X11 Bitmap Distribution Format, from Daniel Quinlan (quinlan@yggdrasil.com)
|
||||
0 string STARTFONT\040 X11 BDF font text
|
||||
|
||||
# X11 fonts, from Daniel Quinlan (quinlan@yggdrasil.com)
|
||||
# PCF must come before SGI additions ("MIPSEL MIPS-II COFF" collides)
|
||||
0 string \001fcp X11 Portable Compiled Font data
|
||||
>12 byte 0x02 \b, LSB first
|
||||
>12 byte 0x0a \b, MSB first
|
||||
0 string D1.0\015 X11 Speedo font data
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# FIGlet fonts and controlfiles
|
||||
# From figmagic supplied with Figlet version 2.2
|
||||
# "David E. O'Brien" <obrien@FreeBSD.ORG>
|
||||
0 string flf FIGlet font
|
||||
>3 string >2a version %-2.2s
|
||||
0 string flc FIGlet controlfile
|
||||
>3 string >2a version %-2.2s
|
||||
|
||||
# libGrx graphics lib fonts, from Albert Cahalan (acahalan@cs.uml.edu)
|
||||
# Used with djgpp (DOS Gnu C++), sometimes Linux or Turbo C++
|
||||
0 belong 0x14025919 libGrx font data,
|
||||
>8 leshort x %dx
|
||||
>10 leshort x \b%d
|
||||
>40 string x %s
|
||||
# Misc. DOS VGA fonts, from Albert Cahalan (acahalan@cs.uml.edu)
|
||||
0 belong 0xff464f4e DOS code page font data collection
|
||||
7 belong 0x00454741 DOS code page font data
|
||||
7 belong 0x00564944 DOS code page font data (from Linux?)
|
||||
4098 string DOSFONT DOSFONT2 encrypted font data
|
||||
|
||||
# downloadable fonts for browser (prints type) anthon@mnt.org
|
||||
0 string PFR1 PFR1 font
|
||||
>102 string >0 \b: %s
|
|
@ -1,38 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# frame: file(1) magic for FrameMaker files
|
||||
#
|
||||
# This stuff came on a FrameMaker demo tape, most of which is
|
||||
# copyright, but this file is "published" as witness the following:
|
||||
#
|
||||
0 string \<MakerFile FrameMaker document
|
||||
>11 string 5.5 (5.5
|
||||
>11 string 5.0 (5.0
|
||||
>11 string 4.0 (4.0
|
||||
>11 string 3.0 (3.0
|
||||
>11 string 2.0 (2.0
|
||||
>11 string 1.0 (1.0
|
||||
>14 byte x %c)
|
||||
0 string \<MIFFile FrameMaker MIF (ASCII) file
|
||||
>9 string 4.0 (4.0)
|
||||
>9 string 3.0 (3.0)
|
||||
>9 string 2.0 (2.0)
|
||||
>9 string 1.0 (1.x)
|
||||
0 string \<MakerDictionary FrameMaker Dictionary text
|
||||
>17 string 3.0 (3.0)
|
||||
>17 string 2.0 (2.0)
|
||||
>17 string 1.0 (1.x)
|
||||
0 string \<MakerScreenFont FrameMaker Font file
|
||||
>17 string 1.01 (%s)
|
||||
0 string \<MML FrameMaker MML file
|
||||
0 string \<BookFile FrameMaker Book file
|
||||
>10 string 3.0 (3.0
|
||||
>10 string 2.0 (2.0
|
||||
>10 string 1.0 (1.0
|
||||
>13 byte x %c)
|
||||
# XXX - this book entry should be verified, if you find one, uncomment this
|
||||
#0 string \<Book\ FrameMaker Book (ASCII) file
|
||||
#>6 string 3.0 (3.0)
|
||||
#>6 string 2.0 (2.0)
|
||||
#>6 string 1.0 (1.0)
|
||||
0 string \<Maker Intermediate Print File FrameMaker IPL file
|
|
@ -1,143 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# freebsd: file(1) magic for FreeBSD objects
|
||||
#
|
||||
# All new-style FreeBSD magic numbers are in host byte order (i.e.,
|
||||
# little-endian on x86).
|
||||
#
|
||||
# XXX - this comes from the file "freebsd" in a recent FreeBSD version of
|
||||
# "file"; it, and the NetBSD stuff in "netbsd", appear to use different
|
||||
# schemes for distinguishing between executable images, shared libraries,
|
||||
# and object files.
|
||||
#
|
||||
# FreeBSD says:
|
||||
#
|
||||
# Regardless of whether it's pure, demand-paged, or none of the
|
||||
# above:
|
||||
#
|
||||
# if the entry point is < 4096, then it's a shared library if
|
||||
# the "has run-time loader information" bit is set, and is
|
||||
# position-independent if the "is position-independent" bit
|
||||
# is set;
|
||||
#
|
||||
# if the entry point is >= 4096 (or >4095, same thing), then it's
|
||||
# an executable, and is dynamically-linked if the "has run-time
|
||||
# loader information" bit is set.
|
||||
#
|
||||
# On x86, NetBSD says:
|
||||
#
|
||||
# If it's neither pure nor demand-paged:
|
||||
#
|
||||
# if it has the "has run-time loader information" bit set, it's
|
||||
# a dynamically-linked executable;
|
||||
#
|
||||
# if it doesn't have that bit set, then:
|
||||
#
|
||||
# if it has the "is position-independent" bit set, it's
|
||||
# position-independent;
|
||||
#
|
||||
# if the entry point is non-zero, it's an executable, otherwise
|
||||
# it's an object file.
|
||||
#
|
||||
# If it's pure:
|
||||
#
|
||||
# if it has the "has run-time loader information" bit set, it's
|
||||
# a dynamically-linked executable, otherwise it's just an
|
||||
# executable.
|
||||
#
|
||||
# If it's demand-paged:
|
||||
#
|
||||
# if it has the "has run-time loader information" bit set,
|
||||
# then:
|
||||
#
|
||||
# if the entry point is < 4096, it's a shared library;
|
||||
#
|
||||
# if the entry point is = 4096 or > 4096 (i.e., >= 4096),
|
||||
# it's a dynamically-linked executable);
|
||||
#
|
||||
# if it doesn't have the "has run-time loader information" bit
|
||||
# set, then it's just an executable.
|
||||
#
|
||||
# (On non-x86, NetBSD does much the same thing, except that it uses
|
||||
# 8192 on 68K - except for "68k4k", which is presumably "68K with 4K
|
||||
# pages - SPARC, and MIPS, presumably because Sun-3's and Sun-4's
|
||||
# had 8K pages; dunno about MIPS.)
|
||||
#
|
||||
# I suspect the two will differ only in perverse and uninteresting cases
|
||||
# ("shared" libraries that aren't demand-paged and whose pages probably
|
||||
# won't actually be shared, executables with entry points <4096).
|
||||
#
|
||||
# I leave it to those more familiar with FreeBSD and NetBSD to figure out
|
||||
# what the right answer is (although using ">4095", FreeBSD-style, is
|
||||
# probably better than separately checking for "=4096" and ">4096",
|
||||
# NetBSD-style). (The old "netbsd" file analyzed FreeBSD demand paged
|
||||
# executables using the NetBSD technique.)
|
||||
#
|
||||
0 lelong&0377777777 041400407 FreeBSD/i386
|
||||
>20 lelong <4096
|
||||
>>3 byte&0xC0 &0x80 shared library
|
||||
>>3 byte&0xC0 0x40 PIC object
|
||||
>>3 byte&0xC0 0x00 object
|
||||
>20 lelong >4095
|
||||
>>3 byte&0x80 0x80 dynamically linked executable
|
||||
>>3 byte&0x80 0x00 executable
|
||||
>16 lelong >0 not stripped
|
||||
|
||||
0 lelong&0377777777 041400410 FreeBSD/i386 pure
|
||||
>20 lelong <4096
|
||||
>>3 byte&0xC0 &0x80 shared library
|
||||
>>3 byte&0xC0 0x40 PIC object
|
||||
>>3 byte&0xC0 0x00 object
|
||||
>20 lelong >4095
|
||||
>>3 byte&0x80 0x80 dynamically linked executable
|
||||
>>3 byte&0x80 0x00 executable
|
||||
>16 lelong >0 not stripped
|
||||
|
||||
0 lelong&0377777777 041400413 FreeBSD/i386 demand paged
|
||||
>20 lelong <4096
|
||||
>>3 byte&0xC0 &0x80 shared library
|
||||
>>3 byte&0xC0 0x40 PIC object
|
||||
>>3 byte&0xC0 0x00 object
|
||||
>20 lelong >4095
|
||||
>>3 byte&0x80 0x80 dynamically linked executable
|
||||
>>3 byte&0x80 0x00 executable
|
||||
>16 lelong >0 not stripped
|
||||
|
||||
0 lelong&0377777777 041400314 FreeBSD/i386 compact demand paged
|
||||
>20 lelong <4096
|
||||
>>3 byte&0xC0 &0x80 shared library
|
||||
>>3 byte&0xC0 0x40 PIC object
|
||||
>>3 byte&0xC0 0x00 object
|
||||
>20 lelong >4095
|
||||
>>3 byte&0x80 0x80 dynamically linked executable
|
||||
>>3 byte&0x80 0x00 executable
|
||||
>16 lelong >0 not stripped
|
||||
|
||||
# XXX gross hack to identify core files
|
||||
# cores start with a struct tss; we take advantage of the following:
|
||||
# byte 7: highest byte of the kernel stack pointer, always 0xfe
|
||||
# 8/9: kernel (ring 0) ss value, always 0x0010
|
||||
# 10 - 27: ring 1 and 2 ss/esp, unused, thus always 0
|
||||
# 28: low order byte of the current PTD entry, always 0 since the
|
||||
# PTD is page-aligned
|
||||
#
|
||||
7 string \357\020\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 FreeBSD/i386 a.out core file
|
||||
>1039 string >\0 from '%s'
|
||||
|
||||
# /var/run/ld.so.hints
|
||||
# What are you laughing about?
|
||||
0 lelong 011421044151 ld.so hints file (Little Endian
|
||||
>4 lelong >0 \b, version %d)
|
||||
>4 belong <=0 \b)
|
||||
0 belong 011421044151 ld.so hints file (Big Endian
|
||||
>4 belong >0 \b, version %d)
|
||||
>4 belong <=0 \b)
|
||||
|
||||
#
|
||||
# Files generated by FreeBSD scrshot(1)/vidcontrol(1) utilities
|
||||
#
|
||||
0 string SCRSHOT_ scrshot(1) screenshot,
|
||||
>8 byte x version %d,
|
||||
>9 byte 2 %d bytes in header,
|
||||
>>10 byte x %d chars wide by
|
||||
>>11 byte x %d chars high
|
|
@ -1,27 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# fsav: file(1) magic for datafellows fsav virus definition files
|
||||
# Anthon van der Neut (anthon@mnt.org)
|
||||
0 beshort 0x1575 fsav (linux) macro virus
|
||||
>8 leshort >0 (%d-
|
||||
>11 byte >0 \b%02d-
|
||||
>10 byte >0 \b%02d)
|
||||
|
||||
# comment this out for now because it regognizes every file where
|
||||
# the eighth character is \n
|
||||
#8 byte 0x0a
|
||||
#>12 byte 0x07
|
||||
#>11 leshort >0 fsav (linux) virus (%d-
|
||||
#>10 byte 0 \b01-
|
||||
#>10 byte 1 \b02-
|
||||
#>10 byte 2 \b03-
|
||||
#>10 byte 3 \b04-
|
||||
#>10 byte 4 \b05-
|
||||
#>10 byte 5 \b06-
|
||||
#>10 byte 6 \b07-
|
||||
#>10 byte 7 \b08-
|
||||
#>10 byte 8 \b08-
|
||||
#>10 byte 9 \b10-
|
||||
#>10 byte 10 \b11-
|
||||
#>10 byte 11 \b12-
|
||||
#>9 byte >0 \b%02d)
|
|
@ -1,36 +0,0 @@
|
|||
#------------------------------------------------------------------------------
|
||||
# GIMP Gradient: file(1) magic for the GIMP's gradient data files
|
||||
# by Federico Mena <federico@nuclecu.unam.mx>
|
||||
|
||||
0 string GIMP\ Gradient GIMP gradient data
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# XCF: file(1) magic for the XCF image format used in the GIMP developed
|
||||
# by Spencer Kimball and Peter Mattis
|
||||
# ('Bucky' LaDieu, nega@vt.edu)
|
||||
|
||||
0 string gimp\ xcf GIMP XCF image data,
|
||||
>9 string file version 0,
|
||||
>9 string v version
|
||||
>>10 string >\0 %s,
|
||||
>14 belong x %lu x
|
||||
>18 belong x %lu,
|
||||
>22 belong 0 RGB Color
|
||||
>22 belong 1 Greyscale
|
||||
>22 belong 2 Indexed Color
|
||||
>22 belong >2 Unknown Image Type.
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# XCF: file(1) magic for the patterns used in the GIMP, developed
|
||||
# by Spencer Kimball and Peter Mattis
|
||||
# ('Bucky' LaDieu, nega@vt.edu)
|
||||
|
||||
20 string GPAT GIMP pattern data,
|
||||
>24 string x %s
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# XCF: file(1) magic for the brushes used in the GIMP, developed
|
||||
# by Spencer Kimball and Peter Mattis
|
||||
# ('Bucky' LaDieu, nega@vt.edu)
|
||||
|
||||
20 string GIMP GIMP brush data
|
|
@ -1,12 +0,0 @@
|
|||
#
|
||||
# GNU nlsutils message catalog file format
|
||||
#
|
||||
0 string \336\22\4\225 GNU message catalog (little endian),
|
||||
>4 lelong x revision %d,
|
||||
>8 lelong x %d messages
|
||||
0 string \225\4\22\336 GNU message catalog (big endian),
|
||||
>4 belong x revision %d,
|
||||
>8 belong x %d messages
|
||||
# message catalogs, from Mitchum DSouza <m.dsouza@mrc-apu.cam.ac.uk>
|
||||
0 string *nazgul* Nazgul style compiled message catalog
|
||||
>8 lelong >0 \b, version %ld
|
|
@ -1,20 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# ACE/gr and Grace type files - PLEASE DO NOT REMOVE THIS LINE
|
||||
#
|
||||
# ACE/gr binary
|
||||
0 string \000\000\0001\000\000\0000\000\000\0000\000\000\0002\000\000\0000\000\000\0000\000\000\0003 old ACE/gr binary file
|
||||
>39 byte >0 - version %c
|
||||
# ACE/gr ascii
|
||||
0 string #\ xvgr\ parameter\ file ACE/gr ascii file
|
||||
0 string #\ xmgr\ parameter\ file ACE/gr ascii file
|
||||
0 string #\ ACE/gr\ parameter\ file ACE/gr ascii file
|
||||
# Grace projects
|
||||
0 string #\ Grace\ project\ file Grace project file
|
||||
>23 string @version\ (version
|
||||
>>32 byte >0 %c
|
||||
>>33 string >\0 \b.%.2s
|
||||
>>35 string >\0 \b.%.2s)
|
||||
# ACE/gr fit description files
|
||||
0 string #\ ACE/gr\ fit\ description\ ACE/gr fit description file
|
||||
# end of ACE/gr and Grace type files - PLEASE DO NOT REMOVE THIS LINE
|
|
@ -1,25 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# gringotts: file(1) magic for Gringotts
|
||||
# http://devel.pluto.linux.it/projects/Gringotts/
|
||||
# author: Germano Rizzo <mano@pluto.linux.it>
|
||||
#GRG2????Y
|
||||
0 string GRG Gringotts data file
|
||||
>3 string 1 v.1, SERPENT crypt, SHA-256 hash, ZLib lvl.9
|
||||
>3 string 2 v.2,
|
||||
>>8 byte&0x70 0x00 RIJNDAEL-128 crypt,
|
||||
>>8 byte&0x70 0x10 SERPENT crypt,
|
||||
>>8 byte&0x70 0x20 TWOFISH crypt,
|
||||
>>8 byte&0x70 0x30 CAST-256 crypt,
|
||||
>>8 byte&0x70 0x40 SAFER+ crypt,
|
||||
>>8 byte&0x70 0x50 LOKI97 crypt,
|
||||
>>8 byte&0x70 0x60 3DES crypt,
|
||||
>>8 byte&0x70 0x70 RIJNDAEL-256 crypt,
|
||||
>>8 byte&0x08 0x00 SHA1 hash,
|
||||
>>8 byte&0x08 0x08 RIPEMD-160 hash,
|
||||
>>8 byte&0x04 0x00 ZLib
|
||||
>>8 byte&0x04 0x04 BZip2
|
||||
>>8 byte&0x03 0x00 lvl.0
|
||||
>>8 byte&0x03 0x01 lvl.3
|
||||
>>8 byte&0x03 0x02 lvl.6
|
||||
>>8 byte&0x03 0x03 lvl.9
|
|
@ -1,18 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# hitach-sh: file(1) magic for Hitachi Super-H
|
||||
#
|
||||
# Super-H COFF
|
||||
#
|
||||
0 beshort 0x0500 Hitachi SH big-endian COFF
|
||||
>18 beshort&0x0002 =0x0000 object
|
||||
>18 beshort&0x0002 =0x0002 executable
|
||||
>18 beshort&0x0008 =0x0008 \b, stripped
|
||||
>18 beshort&0x0008 =0x0000 \b, not stripped
|
||||
#
|
||||
0 leshort 0x0550 Hitachi SH little-endian COFF
|
||||
>18 leshort&0x0002 =0x0000 object
|
||||
>18 leshort&0x0002 =0x0002 executable
|
||||
>18 leshort&0x0008 =0x0008 \b, stripped
|
||||
>18 leshort&0x0008 =0x0000 \b, not stripped
|
||||
|
|
@ -1,391 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# hp: file(1) magic for Hewlett Packard machines (see also "printer")
|
||||
#
|
||||
# XXX - somebody should figure out whether any byte order needs to be
|
||||
# applied to the "TML" stuff; I'm assuming the Apollo stuff is
|
||||
# big-endian as it was mostly 68K-based.
|
||||
#
|
||||
# I think the 500 series was the old stack-based machines, running a
|
||||
# UNIX environment atop the "SUN kernel"; dunno whether it was
|
||||
# big-endian or little-endian.
|
||||
#
|
||||
# Daniel Quinlan (quinlan@yggdrasil.com): hp200 machines are 68010 based;
|
||||
# hp300 are 68020+68881 based; hp400 are also 68k. The following basic
|
||||
# HP magic is useful for reference, but using "long" magic is a better
|
||||
# practice in order to avoid collisions.
|
||||
#
|
||||
# Guy Harris (guy@netapp.com): some additions to this list came from
|
||||
# HP-UX 10.0's "/usr/include/sys/unistd.h" (68030, 68040, PA-RISC 1.1,
|
||||
# 1.2, and 2.0). The 1.2 and 2.0 stuff isn't in the HP-UX 10.0
|
||||
# "/etc/magic", though, except for the "archive file relocatable library"
|
||||
# stuff, and the 68030 and 68040 stuff isn't there at all - are they not
|
||||
# used in executables, or have they just not yet updated "/etc/magic"
|
||||
# completely?
|
||||
#
|
||||
# 0 beshort 200 hp200 (68010) BSD binary
|
||||
# 0 beshort 300 hp300 (68020+68881) BSD binary
|
||||
# 0 beshort 0x20c hp200/300 HP-UX binary
|
||||
# 0 beshort 0x20d hp400 (68030) HP-UX binary
|
||||
# 0 beshort 0x20e hp400 (68040?) HP-UX binary
|
||||
# 0 beshort 0x20b PA-RISC1.0 HP-UX binary
|
||||
# 0 beshort 0x210 PA-RISC1.1 HP-UX binary
|
||||
# 0 beshort 0x211 PA-RISC1.2 HP-UX binary
|
||||
# 0 beshort 0x214 PA-RISC2.0 HP-UX binary
|
||||
|
||||
#
|
||||
# The "misc" stuff needs a byte order; the archives look suspiciously
|
||||
# like the old 177545 archives (0xff65 = 0177545).
|
||||
#
|
||||
#### Old Apollo stuff
|
||||
0 beshort 0627 Apollo m68k COFF executable
|
||||
>18 beshort ^040000 not stripped
|
||||
>22 beshort >0 - version %ld
|
||||
0 beshort 0624 apollo a88k COFF executable
|
||||
>18 beshort ^040000 not stripped
|
||||
>22 beshort >0 - version %ld
|
||||
0 long 01203604016 TML 0123 byte-order format
|
||||
0 long 01702407010 TML 1032 byte-order format
|
||||
0 long 01003405017 TML 2301 byte-order format
|
||||
0 long 01602007412 TML 3210 byte-order format
|
||||
#### PA-RISC 1.1
|
||||
0 belong 0x02100106 PA-RISC1.1 relocatable object
|
||||
0 belong 0x02100107 PA-RISC1.1 executable
|
||||
>168 belong &0x00000004 dynamically linked
|
||||
>(144) belong 0x054ef630 dynamically linked
|
||||
>96 belong >0 - not stripped
|
||||
|
||||
0 belong 0x02100108 PA-RISC1.1 shared executable
|
||||
>168 belong&0x4 0x4 dynamically linked
|
||||
>(144) belong 0x054ef630 dynamically linked
|
||||
>96 belong >0 - not stripped
|
||||
|
||||
0 belong 0x0210010b PA-RISC1.1 demand-load executable
|
||||
>168 belong&0x4 0x4 dynamically linked
|
||||
>(144) belong 0x054ef630 dynamically linked
|
||||
>96 belong >0 - not stripped
|
||||
|
||||
0 belong 0x0210010e PA-RISC1.1 shared library
|
||||
>96 belong >0 - not stripped
|
||||
|
||||
0 belong 0x0210010d PA-RISC1.1 dynamic load library
|
||||
>96 belong >0 - not stripped
|
||||
|
||||
#### PA-RISC 2.0
|
||||
0 belong 0x02140106 PA-RISC2.0 relocatable object
|
||||
|
||||
0 belong 0x02140107 PA-RISC2.0 executable
|
||||
>168 belong &0x00000004 dynamically linked
|
||||
>(144) belong 0x054ef630 dynamically linked
|
||||
>96 belong >0 - not stripped
|
||||
|
||||
0 belong 0x02140108 PA-RISC2.0 shared executable
|
||||
>168 belong &0x00000004 dynamically linked
|
||||
>(144) belong 0x054ef630 dynamically linked
|
||||
>96 belong >0 - not stripped
|
||||
|
||||
0 belong 0x0214010b PA-RISC2.0 demand-load executable
|
||||
>168 belong &0x00000004 dynamically linked
|
||||
>(144) belong 0x054ef630 dynamically linked
|
||||
>96 belong >0 - not stripped
|
||||
|
||||
0 belong 0x0214010e PA-RISC2.0 shared library
|
||||
>96 belong >0 - not stripped
|
||||
|
||||
0 belong 0x0214010d PA-RISC2.0 dynamic load library
|
||||
>96 belong >0 - not stripped
|
||||
|
||||
#### 800
|
||||
0 belong 0x020b0106 PA-RISC1.0 relocatable object
|
||||
|
||||
0 belong 0x020b0107 PA-RISC1.0 executable
|
||||
>168 belong&0x4 0x4 dynamically linked
|
||||
>(144) belong 0x054ef630 dynamically linked
|
||||
>96 belong >0 - not stripped
|
||||
|
||||
0 belong 0x020b0108 PA-RISC1.0 shared executable
|
||||
>168 belong&0x4 0x4 dynamically linked
|
||||
>(144) belong 0x054ef630 dynamically linked
|
||||
>96 belong >0 - not stripped
|
||||
|
||||
0 belong 0x020b010b PA-RISC1.0 demand-load executable
|
||||
>168 belong&0x4 0x4 dynamically linked
|
||||
>(144) belong 0x054ef630 dynamically linked
|
||||
>96 belong >0 - not stripped
|
||||
|
||||
0 belong 0x020b010e PA-RISC1.0 shared library
|
||||
>96 belong >0 - not stripped
|
||||
|
||||
0 belong 0x020b010d PA-RISC1.0 dynamic load library
|
||||
>96 belong >0 - not stripped
|
||||
|
||||
0 belong 0x213c6172 archive file
|
||||
>68 belong 0x020b0619 - PA-RISC1.0 relocatable library
|
||||
>68 belong 0x02100619 - PA-RISC1.1 relocatable library
|
||||
>68 belong 0x02110619 - PA-RISC1.2 relocatable library
|
||||
>68 belong 0x02140619 - PA-RISC2.0 relocatable library
|
||||
|
||||
#### 500
|
||||
0 long 0x02080106 HP s500 relocatable executable
|
||||
>16 long >0 - version %ld
|
||||
|
||||
0 long 0x02080107 HP s500 executable
|
||||
>16 long >0 - version %ld
|
||||
|
||||
0 long 0x02080108 HP s500 pure executable
|
||||
>16 long >0 - version %ld
|
||||
|
||||
#### 200
|
||||
0 belong 0x020c0108 HP s200 pure executable
|
||||
>4 beshort >0 - version %ld
|
||||
>8 belong &0x80000000 save fp regs
|
||||
>8 belong &0x40000000 dynamically linked
|
||||
>8 belong &0x20000000 debuggable
|
||||
>36 belong >0 not stripped
|
||||
|
||||
0 belong 0x020c0107 HP s200 executable
|
||||
>4 beshort >0 - version %ld
|
||||
>8 belong &0x80000000 save fp regs
|
||||
>8 belong &0x40000000 dynamically linked
|
||||
>8 belong &0x20000000 debuggable
|
||||
>36 belong >0 not stripped
|
||||
|
||||
0 belong 0x020c010b HP s200 demand-load executable
|
||||
>4 beshort >0 - version %ld
|
||||
>8 belong &0x80000000 save fp regs
|
||||
>8 belong &0x40000000 dynamically linked
|
||||
>8 belong &0x20000000 debuggable
|
||||
>36 belong >0 not stripped
|
||||
|
||||
0 belong 0x020c0106 HP s200 relocatable executable
|
||||
>4 beshort >0 - version %ld
|
||||
>6 beshort >0 - highwater %d
|
||||
>8 belong &0x80000000 save fp regs
|
||||
>8 belong &0x20000000 debuggable
|
||||
>8 belong &0x10000000 PIC
|
||||
|
||||
0 belong 0x020a0108 HP s200 (2.x release) pure executable
|
||||
>4 beshort >0 - version %ld
|
||||
>36 belong >0 not stripped
|
||||
|
||||
0 belong 0x020a0107 HP s200 (2.x release) executable
|
||||
>4 beshort >0 - version %ld
|
||||
>36 belong >0 not stripped
|
||||
|
||||
0 belong 0x020c010e HP s200 shared library
|
||||
>4 beshort >0 - version %ld
|
||||
>6 beshort >0 - highwater %d
|
||||
>36 belong >0 not stripped
|
||||
|
||||
0 belong 0x020c010d HP s200 dynamic load library
|
||||
>4 beshort >0 - version %ld
|
||||
>6 beshort >0 - highwater %d
|
||||
>36 belong >0 not stripped
|
||||
|
||||
#### MISC
|
||||
0 long 0x0000ff65 HP old archive
|
||||
0 long 0x020aff65 HP s200 old archive
|
||||
0 long 0x020cff65 HP s200 old archive
|
||||
0 long 0x0208ff65 HP s500 old archive
|
||||
|
||||
0 long 0x015821a6 HP core file
|
||||
|
||||
0 long 0x4da7eee8 HP-WINDOWS font
|
||||
>8 byte >0 - version %ld
|
||||
0 string Bitmapfile HP Bitmapfile
|
||||
|
||||
0 string IMGfile CIS compimg HP Bitmapfile
|
||||
# XXX - see "lif"
|
||||
#0 short 0x8000 lif file
|
||||
0 long 0x020c010c compiled Lisp
|
||||
|
||||
0 string msgcat01 HP NLS message catalog,
|
||||
>8 long >0 %d messages
|
||||
|
||||
# addendum to /etc/magic with HP-48sx file-types by phk@data.fls.dk 1jan92
|
||||
0 string HPHP48- HP48 binary
|
||||
>7 byte >0 - Rev %c
|
||||
>8 beshort 0x1129 (ADR)
|
||||
>8 beshort 0x3329 (REAL)
|
||||
>8 beshort 0x5529 (LREAL)
|
||||
>8 beshort 0x7729 (COMPLX)
|
||||
>8 beshort 0x9d29 (LCOMPLX)
|
||||
>8 beshort 0xbf29 (CHAR)
|
||||
>8 beshort 0xe829 (ARRAY)
|
||||
>8 beshort 0x0a2a (LNKARRAY)
|
||||
>8 beshort 0x2c2a (STRING)
|
||||
>8 beshort 0x4e2a (HXS)
|
||||
>8 beshort 0x742a (LIST)
|
||||
>8 beshort 0x962a (DIR)
|
||||
>8 beshort 0xb82a (ALG)
|
||||
>8 beshort 0xda2a (UNIT)
|
||||
>8 beshort 0xfc2a (TAGGED)
|
||||
>8 beshort 0x1e2b (GROB)
|
||||
>8 beshort 0x402b (LIB)
|
||||
>8 beshort 0x622b (BACKUP)
|
||||
>8 beshort 0x882b (LIBDATA)
|
||||
>8 beshort 0x9d2d (PROG)
|
||||
>8 beshort 0xcc2d (CODE)
|
||||
>8 beshort 0x482e (GNAME)
|
||||
>8 beshort 0x6d2e (LNAME)
|
||||
>8 beshort 0x922e (XLIB)
|
||||
0 string %%HP: HP48 text
|
||||
>6 string T(0) - T(0)
|
||||
>6 string T(1) - T(1)
|
||||
>6 string T(2) - T(2)
|
||||
>6 string T(3) - T(3)
|
||||
>10 string A(D) A(D)
|
||||
>10 string A(R) A(R)
|
||||
>10 string A(G) A(G)
|
||||
>14 string F(.) F(.);
|
||||
>14 string F(,) F(,);
|
||||
|
||||
# hpBSD magic numbers
|
||||
0 beshort 200 hp200 (68010) BSD
|
||||
>2 beshort 0407 impure binary
|
||||
>2 beshort 0410 read-only binary
|
||||
>2 beshort 0413 demand paged binary
|
||||
0 beshort 300 hp300 (68020+68881) BSD
|
||||
>2 beshort 0407 impure binary
|
||||
>2 beshort 0410 read-only binary
|
||||
>2 beshort 0413 demand paged binary
|
||||
#
|
||||
# From David Gero <dgero@nortelnetworks.com>
|
||||
# HP-UX 10.20 core file format from /usr/include/sys/core.h
|
||||
# Unfortunately, HP-UX uses corehead blocks without specifying the order
|
||||
# There are four we care about:
|
||||
# CORE_KERNEL, which starts with the string "HP-UX"
|
||||
# CORE_EXEC, which contains the name of the command
|
||||
# CORE_PROC, which contains the signal number that caused the core dump
|
||||
# CORE_FORMAT, which contains the version of the core file format (== 1)
|
||||
# The only observed order in real core files is KERNEL, EXEC, FORMAT, PROC
|
||||
# but we include all 6 variations of the order of the first 3, and
|
||||
# assume that PROC will always be last
|
||||
# Order 1: KERNEL, EXEC, FORMAT, PROC
|
||||
0x10 string HP-UX
|
||||
>0 belong 2
|
||||
>>0xC belong 0x3C
|
||||
>>>0x4C belong 0x100
|
||||
>>>>0x58 belong 0x44
|
||||
>>>>>0xA0 belong 1
|
||||
>>>>>>0xAC belong 4
|
||||
>>>>>>>0xB0 belong 1
|
||||
>>>>>>>>0xB4 belong 4 core file
|
||||
>>>>>>>>>0x90 string >\0 from '%s'
|
||||
>>>>>>>>>0xC4 belong 3 - received SIGQUIT
|
||||
>>>>>>>>>0xC4 belong 4 - received SIGILL
|
||||
>>>>>>>>>0xC4 belong 5 - received SIGTRAP
|
||||
>>>>>>>>>0xC4 belong 6 - received SIGABRT
|
||||
>>>>>>>>>0xC4 belong 7 - received SIGEMT
|
||||
>>>>>>>>>0xC4 belong 8 - received SIGFPE
|
||||
>>>>>>>>>0xC4 belong 10 - received SIGBUS
|
||||
>>>>>>>>>0xC4 belong 11 - received SIGSEGV
|
||||
>>>>>>>>>0xC4 belong 12 - received SIGSYS
|
||||
>>>>>>>>>0xC4 belong 33 - received SIGXCPU
|
||||
>>>>>>>>>0xC4 belong 34 - received SIGXFSZ
|
||||
# Order 2: KERNEL, FORMAT, EXEC, PROC
|
||||
>>>0x4C belong 1
|
||||
>>>>0x58 belong 4
|
||||
>>>>>0x5C belong 1
|
||||
>>>>>>0x60 belong 0x100
|
||||
>>>>>>>0x6C belong 0x44
|
||||
>>>>>>>>0xB4 belong 4 core file
|
||||
>>>>>>>>>0xA4 string >\0 from '%s'
|
||||
>>>>>>>>>0xC4 belong 3 - received SIGQUIT
|
||||
>>>>>>>>>0xC4 belong 4 - received SIGILL
|
||||
>>>>>>>>>0xC4 belong 5 - received SIGTRAP
|
||||
>>>>>>>>>0xC4 belong 6 - received SIGABRT
|
||||
>>>>>>>>>0xC4 belong 7 - received SIGEMT
|
||||
>>>>>>>>>0xC4 belong 8 - received SIGFPE
|
||||
>>>>>>>>>0xC4 belong 10 - received SIGBUS
|
||||
>>>>>>>>>0xC4 belong 11 - received SIGSEGV
|
||||
>>>>>>>>>0xC4 belong 12 - received SIGSYS
|
||||
>>>>>>>>>0xC4 belong 33 - received SIGXCPU
|
||||
>>>>>>>>>0xC4 belong 34 - received SIGXFSZ
|
||||
# Order 3: FORMAT, KERNEL, EXEC, PROC
|
||||
0x24 string HP-UX
|
||||
>0 belong 1
|
||||
>>0xC belong 4
|
||||
>>>0x10 belong 1
|
||||
>>>>0x14 belong 2
|
||||
>>>>>0x20 belong 0x3C
|
||||
>>>>>>0x60 belong 0x100
|
||||
>>>>>>>0x6C belong 0x44
|
||||
>>>>>>>>0xB4 belong 4 core file
|
||||
>>>>>>>>>0xA4 string >\0 from '%s'
|
||||
>>>>>>>>>0xC4 belong 3 - received SIGQUIT
|
||||
>>>>>>>>>0xC4 belong 4 - received SIGILL
|
||||
>>>>>>>>>0xC4 belong 5 - received SIGTRAP
|
||||
>>>>>>>>>0xC4 belong 6 - received SIGABRT
|
||||
>>>>>>>>>0xC4 belong 7 - received SIGEMT
|
||||
>>>>>>>>>0xC4 belong 8 - received SIGFPE
|
||||
>>>>>>>>>0xC4 belong 10 - received SIGBUS
|
||||
>>>>>>>>>0xC4 belong 11 - received SIGSEGV
|
||||
>>>>>>>>>0xC4 belong 12 - received SIGSYS
|
||||
>>>>>>>>>0xC4 belong 33 - received SIGXCPU
|
||||
>>>>>>>>>0xC4 belong 34 - received SIGXFSZ
|
||||
# Order 4: EXEC, KERNEL, FORMAT, PROC
|
||||
0x64 string HP-UX
|
||||
>0 belong 0x100
|
||||
>>0xC belong 0x44
|
||||
>>>0x54 belong 2
|
||||
>>>>0x60 belong 0x3C
|
||||
>>>>>0xA0 belong 1
|
||||
>>>>>>0xAC belong 4
|
||||
>>>>>>>0xB0 belong 1
|
||||
>>>>>>>>0xB4 belong 4 core file
|
||||
>>>>>>>>>0x44 string >\0 from '%s'
|
||||
>>>>>>>>>0xC4 belong 3 - received SIGQUIT
|
||||
>>>>>>>>>0xC4 belong 4 - received SIGILL
|
||||
>>>>>>>>>0xC4 belong 5 - received SIGTRAP
|
||||
>>>>>>>>>0xC4 belong 6 - received SIGABRT
|
||||
>>>>>>>>>0xC4 belong 7 - received SIGEMT
|
||||
>>>>>>>>>0xC4 belong 8 - received SIGFPE
|
||||
>>>>>>>>>0xC4 belong 10 - received SIGBUS
|
||||
>>>>>>>>>0xC4 belong 11 - received SIGSEGV
|
||||
>>>>>>>>>0xC4 belong 12 - received SIGSYS
|
||||
>>>>>>>>>0xC4 belong 33 - received SIGXCPU
|
||||
>>>>>>>>>0xC4 belong 34 - received SIGXFSZ
|
||||
# Order 5: FORMAT, EXEC, KERNEL, PROC
|
||||
0x78 string HP-UX
|
||||
>0 belong 1
|
||||
>>0xC belong 4
|
||||
>>>0x10 belong 1
|
||||
>>>>0x14 belong 0x100
|
||||
>>>>>0x20 belong 0x44
|
||||
>>>>>>0x68 belong 2
|
||||
>>>>>>>0x74 belong 0x3C
|
||||
>>>>>>>>0xB4 belong 4 core file
|
||||
>>>>>>>>>0x58 string >\0 from '%s'
|
||||
>>>>>>>>>0xC4 belong 3 - received SIGQUIT
|
||||
>>>>>>>>>0xC4 belong 4 - received SIGILL
|
||||
>>>>>>>>>0xC4 belong 5 - received SIGTRAP
|
||||
>>>>>>>>>0xC4 belong 6 - received SIGABRT
|
||||
>>>>>>>>>0xC4 belong 7 - received SIGEMT
|
||||
>>>>>>>>>0xC4 belong 8 - received SIGFPE
|
||||
>>>>>>>>>0xC4 belong 10 - received SIGBUS
|
||||
>>>>>>>>>0xC4 belong 11 - received SIGSEGV
|
||||
>>>>>>>>>0xC4 belong 12 - received SIGSYS
|
||||
>>>>>>>>>0xC4 belong 33 - received SIGXCPU
|
||||
>>>>>>>>>0xC4 belong 34 - received SIGXFSZ
|
||||
# Order 6: EXEC, FORMAT, KERNEL, PROC
|
||||
>0 belong 0x100
|
||||
>>0xC belong 0x44
|
||||
>>>0x54 belong 1
|
||||
>>>>0x60 belong 4
|
||||
>>>>>0x64 belong 1
|
||||
>>>>>>0x68 belong 2
|
||||
>>>>>>>0x74 belong 0x2C
|
||||
>>>>>>>>0xB4 belong 4 core file
|
||||
>>>>>>>>>0x44 string >\0 from '%s'
|
||||
>>>>>>>>>0xC4 belong 3 - received SIGQUIT
|
||||
>>>>>>>>>0xC4 belong 4 - received SIGILL
|
||||
>>>>>>>>>0xC4 belong 5 - received SIGTRAP
|
||||
>>>>>>>>>0xC4 belong 6 - received SIGABRT
|
||||
>>>>>>>>>0xC4 belong 7 - received SIGEMT
|
||||
>>>>>>>>>0xC4 belong 8 - received SIGFPE
|
||||
>>>>>>>>>0xC4 belong 10 - received SIGBUS
|
||||
>>>>>>>>>0xC4 belong 11 - received SIGSEGV
|
||||
>>>>>>>>>0xC4 belong 12 - received SIGSYS
|
||||
>>>>>>>>>0xC4 belong 33 - received SIGXCPU
|
||||
>>>>>>>>>0xC4 belong 34 - received SIGXFSZ
|
|
@ -1,25 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# human68k: file(1) magic for Human68k (X680x0 DOS) binary formats
|
||||
|
||||
0 string HU Human68k
|
||||
>68 string LZX LZX compressed
|
||||
>>72 string >\0 (version %s)
|
||||
>(8.L+74) string LZX LZX compressed
|
||||
>>(8.L+78) string >\0 (version %s)
|
||||
>60 belong >0 binded
|
||||
>(8.L+66) string #HUPAIR hupair
|
||||
>0 string HU X executable
|
||||
>(8.L+74) string #LIBCV1 - linked PD LIBC ver 1
|
||||
>4 belong >0 - base address 0x%x
|
||||
>28 belong >0 not stripped
|
||||
>32 belong >0 with debug information
|
||||
0 beshort 0x601a Human68k Z executable
|
||||
0 beshort 0x6000 Human68k object file
|
||||
0 belong 0xd1000000 Human68k ar binary archive
|
||||
0 belong 0xd1010000 Human68k ar ascii archive
|
||||
0 beshort 0x0068 Human68k lib archive
|
||||
4 string LZX Human68k LZX compressed
|
||||
>8 string >\0 (version %s)
|
||||
>4 string LZX R executable
|
||||
2 string #HUPAIR Human68k hupair R executable
|
|
@ -1,47 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# ibm370: file(1) magic for IBM 370 and compatibles.
|
||||
#
|
||||
# "ibm370" said that 0x15d == 0535 was "ibm 370 pure executable".
|
||||
# What the heck *is* "USS/370"?
|
||||
# AIX 4.1's "/etc/magic" has
|
||||
#
|
||||
# 0 short 0535 370 sysV executable
|
||||
# >12 long >0 not stripped
|
||||
# >22 short >0 - version %d
|
||||
# >30 long >0 - 5.2 format
|
||||
# 0 short 0530 370 sysV pure executable
|
||||
# >12 long >0 not stripped
|
||||
# >22 short >0 - version %d
|
||||
# >30 long >0 - 5.2 format
|
||||
#
|
||||
# instead of the "USS/370" versions of the same magic numbers.
|
||||
#
|
||||
0 beshort 0537 370 XA sysV executable
|
||||
>12 belong >0 not stripped
|
||||
>22 beshort >0 - version %d
|
||||
>30 belong >0 - 5.2 format
|
||||
0 beshort 0532 370 XA sysV pure executable
|
||||
>12 belong >0 not stripped
|
||||
>22 beshort >0 - version %d
|
||||
>30 belong >0 - 5.2 format
|
||||
0 beshort 054001 370 sysV pure executable
|
||||
>12 belong >0 not stripped
|
||||
0 beshort 055001 370 XA sysV pure executable
|
||||
>12 belong >0 not stripped
|
||||
0 beshort 056401 370 sysV executable
|
||||
>12 belong >0 not stripped
|
||||
0 beshort 057401 370 XA sysV executable
|
||||
>12 belong >0 not stripped
|
||||
0 beshort 0531 SVR2 executable (Amdahl-UTS)
|
||||
>12 belong >0 not stripped
|
||||
>24 belong >0 - version %ld
|
||||
0 beshort 0534 SVR2 pure executable (Amdahl-UTS)
|
||||
>12 belong >0 not stripped
|
||||
>24 belong >0 - version %ld
|
||||
0 beshort 0530 SVR2 pure executable (USS/370)
|
||||
>12 belong >0 not stripped
|
||||
>24 belong >0 - version %ld
|
||||
0 beshort 0535 SVR2 executable (USS/370)
|
||||
>12 belong >0 not stripped
|
||||
>24 belong >0 - version %ld
|
|
@ -1,17 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# ibm6000: file(1) magic for RS/6000 and the RT PC.
|
||||
#
|
||||
0 beshort 0x01df executable (RISC System/6000 V3.1) or obj module
|
||||
>12 belong >0 not stripped
|
||||
# Breaks sun4 statically linked execs.
|
||||
#0 beshort 0x0103 executable (RT Version 2) or obj module
|
||||
#>2 byte 0x50 pure
|
||||
#>28 belong >0 not stripped
|
||||
#>6 beshort >0 - version %ld
|
||||
0 beshort 0x0104 shared library
|
||||
0 beshort 0x0105 ctab data
|
||||
0 beshort 0xfe04 structured file
|
||||
0 string 0xabcdef AIX message catalog
|
||||
0 belong 0x000001f9 AIX compiled message catalog
|
||||
0 string \<aiaff> archive
|
|
@ -1,28 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# iff: file(1) magic for Interchange File Format (see also "audio" & "images")
|
||||
#
|
||||
# Daniel Quinlan (quinlan@yggdrasil.com) -- IFF was designed by Electronic
|
||||
# Arts for file interchange. It has also been used by Apple, SGI, and
|
||||
# especially Commodore-Amiga.
|
||||
#
|
||||
# IFF files begin with an 8 byte FORM header, followed by a 4 character
|
||||
# FORM type, which is followed by the first chunk in the FORM.
|
||||
|
||||
0 string FORM IFF data
|
||||
#>4 belong x \b, FORM is %d bytes long
|
||||
# audio formats
|
||||
>8 string AIFF \b, AIFF audio
|
||||
>8 string AIFC \b, AIFF-C compressed audio
|
||||
>8 string 8SVX \b, 8SVX 8-bit sampled sound voice
|
||||
>8 string SAMP \b, SAMP sampled audio
|
||||
# image formats
|
||||
>8 string ILBMBMHD \b, ILBM interleaved image
|
||||
>>20 beshort x \b, %d x
|
||||
>>22 beshort x %d
|
||||
>8 string RGBN \b, RGBN 12-bit RGB image
|
||||
>8 string RGB8 \b, RGB8 24-bit RGB image
|
||||
>8 string DR2D \b, DR2D 2-D object
|
||||
>8 string TDDD \b, TDDD 3-D rendering
|
||||
# other formats
|
||||
>8 string FTXT \b, FTXT formatted text
|
|
@ -1,335 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# images: file(1) magic for image formats (see also "iff")
|
||||
#
|
||||
# originally from jef@helios.ee.lbl.gov (Jef Poskanzer),
|
||||
# additions by janl@ifi.uio.no as well as others. Jan also suggested
|
||||
# merging several one- and two-line files into here.
|
||||
#
|
||||
# little magic: PCX (first byte is 0x0a)
|
||||
|
||||
# Targa - matches `povray', `ppmtotga' and `xv' outputs
|
||||
# by Philippe De Muyter <phdm@macqel.be>
|
||||
# at 2, byte ImgType must be 1, 2, 3, 9, 10 or 11
|
||||
# at 1, byte CoMapType must be 1 if ImgType is 1 or 9, 0 otherwise
|
||||
# at 3, leshort Index is 0 for povray, ppmtotga and xv outputs
|
||||
# `xv' recognizes only a subset of the following (RGB with pixelsize = 24)
|
||||
# `tgatoppm' recognizes a superset (Index may be anything)
|
||||
1 belong&0xfff7ffff 0x01010000 Targa image data - Map
|
||||
>2 byte&8 8 - RLE
|
||||
1 belong&0xfff7ffff 0x00020000 Targa image data - RGB
|
||||
>2 byte&8 8 - RLE
|
||||
1 belong&0xfff7ffff 0x00030000 Targa image data - Mono
|
||||
>2 byte&8 8 - RLE
|
||||
|
||||
# PBMPLUS images
|
||||
# The next byte following the magic is always whitespace.
|
||||
0 string P1 Netpbm PBM image text
|
||||
0 string P2 Netpbm PGM image text
|
||||
0 string P3 Netpbm PPM image text
|
||||
0 string P4 Netpbm PBM "rawbits" image data
|
||||
0 string P5 Netpbm PGM "rawbits" image data
|
||||
0 string P6 Netpbm PPM "rawbits" image data
|
||||
0 string P7 Netpbm PAM image file
|
||||
|
||||
# From: bryanh@giraffe-data.com (Bryan Henderson)
|
||||
0 string \117\072 Solitaire Image Recorder format
|
||||
>4 string \013 MGI Type 11
|
||||
>4 string \021 MGI Type 17
|
||||
0 string .MDA MicroDesign data
|
||||
>21 byte 48 version 2
|
||||
>21 byte 51 version 3
|
||||
0 string .MDP MicroDesign page data
|
||||
>21 byte 48 version 2
|
||||
>21 byte 51 version 3
|
||||
|
||||
# NIFF (Navy Interchange File Format, a modification of TIFF) images
|
||||
0 string IIN1 NIFF image data
|
||||
|
||||
# Tag Image File Format, from Daniel Quinlan (quinlan@yggdrasil.com)
|
||||
# The second word of TIFF files is the TIFF version number, 42, which has
|
||||
# never changed. The TIFF specification recommends testing for it.
|
||||
0 string MM\x00\x2a TIFF image data, big-endian
|
||||
0 string II\x2a\x00 TIFF image data, little-endian
|
||||
|
||||
# PNG [Portable Network Graphics, or "PNG's Not GIF"] images
|
||||
# (Greg Roelofs, newt@uchicago.edu)
|
||||
# (Albert Cahalan, acahalan@cs.uml.edu)
|
||||
#
|
||||
# 137 P N G \r \n ^Z \n [4-byte length] H E A D [HEAD data] [HEAD crc] ...
|
||||
#
|
||||
0 string \x89PNG PNG image data,
|
||||
>4 belong !0x0d0a1a0a CORRUPTED,
|
||||
>4 belong 0x0d0a1a0a
|
||||
>>16 belong x %ld x
|
||||
>>20 belong x %ld,
|
||||
>>24 byte x %d-bit
|
||||
>>25 byte 0 grayscale,
|
||||
>>25 byte 2 \b/color RGB,
|
||||
>>25 byte 3 colormap,
|
||||
>>25 byte 4 gray+alpha,
|
||||
>>25 byte 6 \b/color RGBA,
|
||||
#>>26 byte 0 deflate/32K,
|
||||
>>28 byte 0 non-interlaced
|
||||
>>28 byte 1 interlaced
|
||||
1 string PNG PNG image data, CORRUPTED
|
||||
|
||||
# GIF
|
||||
0 string GIF8 GIF image data
|
||||
>4 string 7a \b, version 8%s,
|
||||
>4 string 9a \b, version 8%s,
|
||||
>6 leshort >0 %hd x
|
||||
>8 leshort >0 %hd
|
||||
#>10 byte &0x80 color mapped,
|
||||
#>10 byte&0x07 =0x00 2 colors
|
||||
#>10 byte&0x07 =0x01 4 colors
|
||||
#>10 byte&0x07 =0x02 8 colors
|
||||
#>10 byte&0x07 =0x03 16 colors
|
||||
#>10 byte&0x07 =0x04 32 colors
|
||||
#>10 byte&0x07 =0x05 64 colors
|
||||
#>10 byte&0x07 =0x06 128 colors
|
||||
#>10 byte&0x07 =0x07 256 colors
|
||||
|
||||
# ITC (CMU WM) raster files. It is essentially a byte-reversed Sun raster,
|
||||
# 1 plane, no encoding.
|
||||
0 string \361\0\100\273 CMU window manager raster image data
|
||||
>4 lelong >0 %d x
|
||||
>8 lelong >0 %d,
|
||||
>12 lelong >0 %d-bit
|
||||
|
||||
# Magick Image File Format
|
||||
0 string id=ImageMagick MIFF image data
|
||||
|
||||
# Artisan
|
||||
0 long 1123028772 Artisan image data
|
||||
>4 long 1 \b, rectangular 24-bit
|
||||
>4 long 2 \b, rectangular 8-bit with colormap
|
||||
>4 long 3 \b, rectangular 32-bit (24-bit with matte)
|
||||
|
||||
# FIG (Facility for Interactive Generation of figures), an object-based format
|
||||
0 string #FIG FIG image text
|
||||
>5 string x \b, version %.3s
|
||||
|
||||
# PHIGS
|
||||
0 string ARF_BEGARF PHIGS clear text archive
|
||||
0 string @(#)SunPHIGS SunPHIGS
|
||||
# version number follows, in the form m.n
|
||||
>40 string SunBin binary
|
||||
>32 string archive archive
|
||||
|
||||
# GKS (Graphics Kernel System)
|
||||
0 string GKSM GKS Metafile
|
||||
>24 string SunGKS \b, SunGKS
|
||||
|
||||
# CGM image files
|
||||
0 string BEGMF clear text Computer Graphics Metafile
|
||||
# XXX - questionable magic
|
||||
0 beshort&0xffe0 0x0020 binary Computer Graphics Metafile
|
||||
0 beshort 0x3020 character Computer Graphics Metafile
|
||||
|
||||
# MGR bitmaps (Michael Haardt, u31b3hs@pool.informatik.rwth-aachen.de)
|
||||
0 string yz MGR bitmap, modern format, 8-bit aligned
|
||||
0 string zz MGR bitmap, old format, 1-bit deep, 16-bit aligned
|
||||
0 string xz MGR bitmap, old format, 1-bit deep, 32-bit aligned
|
||||
0 string yx MGR bitmap, modern format, squeezed
|
||||
|
||||
# Fuzzy Bitmap (FBM) images
|
||||
0 string %bitmap\0 FBM image data
|
||||
>30 long 0x31 \b, mono
|
||||
>30 long 0x33 \b, color
|
||||
|
||||
# facsimile data
|
||||
1 string PC\ Research,\ Inc group 3 fax data
|
||||
>29 byte 0 \b, normal resolution (204x98 DPI)
|
||||
>29 byte 1 \b, fine resolution (204x196 DPI)
|
||||
|
||||
# PC bitmaps (OS/2, Windoze BMP files) (Greg Roelofs, newt@uchicago.edu)
|
||||
0 string BM PC bitmap data
|
||||
>14 leshort 12 \b, OS/2 1.x format
|
||||
>>18 leshort x \b, %d x
|
||||
>>20 leshort x %d
|
||||
>14 leshort 64 \b, OS/2 2.x format
|
||||
>>18 leshort x \b, %d x
|
||||
>>20 leshort x %d
|
||||
>14 leshort 40 \b, Windows 3.x format
|
||||
>>18 lelong x \b, %d x
|
||||
>>22 lelong x %d x
|
||||
>>28 leshort x %d
|
||||
0 string IC PC icon data
|
||||
0 string PI PC pointer image data
|
||||
0 string CI PC color icon data
|
||||
0 string CP PC color pointer image data
|
||||
# Conflicts with other entries [BABYL]
|
||||
#0 string BA PC bitmap array data
|
||||
|
||||
# XPM icons (Greg Roelofs, newt@uchicago.edu)
|
||||
# note possible collision with C/REXX entry in c-lang; currently commented out
|
||||
0 string /*\ XPM\ */ X pixmap image text
|
||||
|
||||
# Utah Raster Toolkit RLE images (janl@ifi.uio.no)
|
||||
0 leshort 0xcc52 RLE image data,
|
||||
>6 leshort x %d x
|
||||
>8 leshort x %d
|
||||
>2 leshort >0 \b, lower left corner: %d
|
||||
>4 leshort >0 \b, lower right corner: %d
|
||||
>10 byte&0x1 =0x1 \b, clear first
|
||||
>10 byte&0x2 =0x2 \b, no background
|
||||
>10 byte&0x4 =0x4 \b, alpha channel
|
||||
>10 byte&0x8 =0x8 \b, comment
|
||||
>11 byte >0 \b, %d color channels
|
||||
>12 byte >0 \b, %d bits per pixel
|
||||
>13 byte >0 \b, %d color map channels
|
||||
|
||||
# image file format (Robert Potter, potter@cs.rochester.edu)
|
||||
0 string Imagefile\ version- iff image data
|
||||
# this adds the whole header (inc. version number), informative but longish
|
||||
>10 string >\0 %s
|
||||
|
||||
# Sun raster images, from Daniel Quinlan (quinlan@yggdrasil.com)
|
||||
0 belong 0x59a66a95 Sun raster image data
|
||||
>4 belong >0 \b, %d x
|
||||
>8 belong >0 %d,
|
||||
>12 belong >0 %d-bit,
|
||||
#>16 belong >0 %d bytes long,
|
||||
>20 belong 0 old format,
|
||||
#>20 belong 1 standard,
|
||||
>20 belong 2 compressed,
|
||||
>20 belong 3 RGB,
|
||||
>20 belong 4 TIFF,
|
||||
>20 belong 5 IFF,
|
||||
>20 belong 0xffff reserved for testing,
|
||||
>24 belong 0 no colormap
|
||||
>24 belong 1 RGB colormap
|
||||
>24 belong 2 raw colormap
|
||||
#>28 belong >0 colormap is %d bytes long
|
||||
|
||||
# SGI image file format, from Daniel Quinlan (quinlan@yggdrasil.com)
|
||||
#
|
||||
# See
|
||||
# http://reality.sgi.com/grafica/sgiimage.html
|
||||
#
|
||||
0 beshort 474 SGI image data
|
||||
#>2 byte 0 \b, verbatim
|
||||
>2 byte 1 \b, RLE
|
||||
#>3 byte 1 \b, normal precision
|
||||
>3 byte 2 \b, high precision
|
||||
>4 beshort x \b, %d-D
|
||||
>6 beshort x \b, %d x
|
||||
>8 beshort x %d
|
||||
>10 beshort x \b, %d channel
|
||||
>10 beshort !1 \bs
|
||||
>80 string >0 \b, "%s"
|
||||
|
||||
0 string IT01 FIT image data
|
||||
>4 belong x \b, %d x
|
||||
>8 belong x %d x
|
||||
>12 belong x %d
|
||||
#
|
||||
0 string IT02 FIT image data
|
||||
>4 belong x \b, %d x
|
||||
>8 belong x %d x
|
||||
>12 belong x %d
|
||||
#
|
||||
2048 string PCD_IPI Kodak Photo CD image pack file
|
||||
>0xe02 byte&0x03 0x00 , landscape mode
|
||||
>0xe02 byte&0x03 0x01 , portrait mode
|
||||
>0xe02 byte&0x03 0x02 , landscape mode
|
||||
>0xe02 byte&0x03 0x03 , portrait mode
|
||||
0 string PCD_OPA Kodak Photo CD overview pack file
|
||||
|
||||
# FITS format. Jeff Uphoff <juphoff@tarsier.cv.nrao.edu>
|
||||
# FITS is the Flexible Image Transport System, the de facto standard for
|
||||
# data and image transfer, storage, etc., for the astronomical community.
|
||||
# (FITS floating point formats are big-endian.)
|
||||
0 string SIMPLE\ \ = FITS image data
|
||||
>109 string 8 \b, 8-bit, character or unsigned binary integer
|
||||
>108 string 16 \b, 16-bit, two's complement binary integer
|
||||
>107 string \ 32 \b, 32-bit, two's complement binary integer
|
||||
>107 string -32 \b, 32-bit, floating point, single precision
|
||||
>107 string -64 \b, 64-bit, floating point, double precision
|
||||
|
||||
# other images
|
||||
0 string This\ is\ a\ BitMap\ file Lisp Machine bit-array-file
|
||||
0 string !! Bennet Yee's "face" format
|
||||
|
||||
# From SunOS 5.5.1 "/etc/magic" - appeared right before Sun raster image
|
||||
# stuff.
|
||||
#
|
||||
0 beshort 0x1010 PEX Binary Archive
|
||||
|
||||
# Visio drawings
|
||||
03000 string Visio\ (TM)\ Drawing %s
|
||||
|
||||
# Tgif files
|
||||
0 string \%TGIF\ x Tgif file version %s
|
||||
|
||||
# DICOM medical imaging data
|
||||
128 string DICM DICOM medical imaging data
|
||||
|
||||
# XWD - X-Windows Dump file.
|
||||
# As described in /usr/X11R6/include/X11/XWDFile.h
|
||||
# used by the xwd program.
|
||||
# Bradford Castalia, idaeim, 1/01
|
||||
4 belong 7 XWD X-Windows Dump image data
|
||||
>100 string >\0 \b, "%s"
|
||||
>16 belong x \b, %dx
|
||||
>20 belong x \b%dx
|
||||
>12 belong x \b%d
|
||||
|
||||
# PDS - Planetary Data System
|
||||
# These files use Parameter Value Language in the header section.
|
||||
# Unfortunately, there is no certain magic, but the following
|
||||
# strings have been found to be most likely.
|
||||
0 string NJPL1I00 PDS (JPL) image data
|
||||
2 string NJPL1I PDS (JPL) image data
|
||||
0 string CCSD3ZF PDS (CCSD) image data
|
||||
2 string CCSD3Z PDS (CCSD) image data
|
||||
0 string PDS_ PDS image data
|
||||
0 string LBLSIZE= PDS (VICAR) image data
|
||||
|
||||
# pM8x: ATARI STAD compressed bitmap format
|
||||
#
|
||||
# from Oskar Schirmer <schirmer@scara.com> Feb 2, 2001
|
||||
# p M 8 5/6 xx yy zz data...
|
||||
# Atari ST STAD bitmap is always 640x400, bytewise runlength compressed.
|
||||
# bytes either run horizontally (pM85) or vertically (pM86). yy is the
|
||||
# most frequent byte, xx and zz are runlength escape codes, where xx is
|
||||
# used for runs of yy.
|
||||
#
|
||||
0 string pM85 Atari ST STAD bitmap image data (hor)
|
||||
>5 byte 0x00 (white background)
|
||||
>5 byte 0xFF (black background)
|
||||
0 string pM86 Atari ST STAD bitmap image data (vert)
|
||||
>5 byte 0x00 (white background)
|
||||
>5 byte 0xFF (black background)
|
||||
|
||||
# XXX:
|
||||
# This is bad magic 0x5249 == 'RI' conflicts with RIFF and other
|
||||
# magic.
|
||||
# SGI RICE image file <mpruett@sgi.com>
|
||||
#0 beshort 0x5249 RICE image
|
||||
#>2 beshort x v%d
|
||||
#>4 beshort x (%d x
|
||||
#>6 beshort x %d)
|
||||
#>8 beshort 0 8 bit
|
||||
#>8 beshort 1 10 bit
|
||||
#>8 beshort 2 12 bit
|
||||
#>8 beshort 3 13 bit
|
||||
#>10 beshort 0 4:2:2
|
||||
#>10 beshort 1 4:2:2:4
|
||||
#>10 beshort 2 4:4:4
|
||||
#>10 beshort 3 4:4:4:4
|
||||
#>12 beshort 1 RGB
|
||||
#>12 beshort 2 CCIR601
|
||||
#>12 beshort 3 RP175
|
||||
#>12 beshort 4 YUV
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# Marco Schmidt (marcoschmidt@users.sourceforge.net) -- an image file format
|
||||
# for the EPOC operating system, which is used with PDAs like those from Psion
|
||||
#
|
||||
# see http://huizen.dds.nl/~frodol/psiconv/html/Index.html for a description
|
||||
# of various EPOC file formats
|
||||
|
||||
0 string \x37\x00\x00\x10\x42\x00\x00\x10\x00\x00\x00\x00\x39\x64\x39\x47 EPOC MBM image file
|
|
@ -1,35 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# intel: file(1) magic for x86 Unix
|
||||
#
|
||||
# Various flavors of x86 UNIX executable/object (other than Xenix, which
|
||||
# is in "microsoft"). DOS is in "msdos"; the ambitious soul can do
|
||||
# Windows as well.
|
||||
#
|
||||
# Windows NT belongs elsewhere, as you need x86 and MIPS and Alpha and
|
||||
# whatever comes next (HP-PA Hummingbird?). OS/2 may also go elsewhere
|
||||
# as well, if, as, and when IBM makes it portable.
|
||||
#
|
||||
# The `versions' should be un-commented if they work for you.
|
||||
# (Was the problem just one of endianness?)
|
||||
#
|
||||
0 leshort 0502 basic-16 executable
|
||||
>12 lelong >0 not stripped
|
||||
#>22 leshort >0 - version %ld
|
||||
0 leshort 0503 basic-16 executable (TV)
|
||||
>12 lelong >0 not stripped
|
||||
#>22 leshort >0 - version %ld
|
||||
0 leshort 0510 x86 executable
|
||||
>12 lelong >0 not stripped
|
||||
0 leshort 0511 x86 executable (TV)
|
||||
>12 lelong >0 not stripped
|
||||
0 leshort =0512 iAPX 286 executable small model (COFF)
|
||||
>12 lelong >0 not stripped
|
||||
#>22 leshort >0 - version %ld
|
||||
0 leshort =0522 iAPX 286 executable large model (COFF)
|
||||
>12 lelong >0 not stripped
|
||||
#>22 leshort >0 - version %ld
|
||||
# SGI labeled the next entry as "iAPX 386 executable" --Dan Quinlan
|
||||
0 leshort =0514 80386 COFF executable
|
||||
>12 lelong >0 not stripped
|
||||
>22 leshort >0 - version %ld
|
|
@ -1,8 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# interleaf: file(1) magic for InterLeaf TPS:
|
||||
#
|
||||
0 string =\210OPS Interleaf saved data
|
||||
0 string =<!OPS Interleaf document text
|
||||
>5 string ,\ Version\ = \b, version
|
||||
>>17 string >\0 %.3s
|
|
@ -1,9 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# island: file(1) magic for IslandWite/IslandDraw, from SunOS 5.5.1
|
||||
# "/etc/magic":
|
||||
# From: guy@netapp.com (Guy Harris)
|
||||
#
|
||||
4 string pgscriptver IslandWrite document
|
||||
13 string DrawFile IslandDraw document
|
||||
|
|
@ -1,62 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# ispell: file(1) magic for ispell
|
||||
#
|
||||
# Ispell 3.0 has a magic of 0x9601 and ispell 3.1 has 0x9602. This magic
|
||||
# will match 0x9600 through 0x9603 in *both* little endian and big endian.
|
||||
# (No other current magic entries collide.)
|
||||
#
|
||||
# Updated by Daniel Quinlan (quinlan@yggdrasil.com)
|
||||
#
|
||||
0 leshort&0xFFFC 0x9600 little endian ispell
|
||||
>0 byte 0 hash file (?),
|
||||
>0 byte 1 3.0 hash file,
|
||||
>0 byte 2 3.1 hash file,
|
||||
>0 byte 3 hash file (?),
|
||||
>2 leshort 0x00 8-bit, no capitalization, 26 flags
|
||||
>2 leshort 0x01 7-bit, no capitalization, 26 flags
|
||||
>2 leshort 0x02 8-bit, capitalization, 26 flags
|
||||
>2 leshort 0x03 7-bit, capitalization, 26 flags
|
||||
>2 leshort 0x04 8-bit, no capitalization, 52 flags
|
||||
>2 leshort 0x05 7-bit, no capitalization, 52 flags
|
||||
>2 leshort 0x06 8-bit, capitalization, 52 flags
|
||||
>2 leshort 0x07 7-bit, capitalization, 52 flags
|
||||
>2 leshort 0x08 8-bit, no capitalization, 128 flags
|
||||
>2 leshort 0x09 7-bit, no capitalization, 128 flags
|
||||
>2 leshort 0x0A 8-bit, capitalization, 128 flags
|
||||
>2 leshort 0x0B 7-bit, capitalization, 128 flags
|
||||
>2 leshort 0x0C 8-bit, no capitalization, 256 flags
|
||||
>2 leshort 0x0D 7-bit, no capitalization, 256 flags
|
||||
>2 leshort 0x0E 8-bit, capitalization, 256 flags
|
||||
>2 leshort 0x0F 7-bit, capitalization, 256 flags
|
||||
>4 leshort >0 and %d string characters
|
||||
0 beshort&0xFFFC 0x9600 big endian ispell
|
||||
>1 byte 0 hash file (?),
|
||||
>1 byte 1 3.0 hash file,
|
||||
>1 byte 2 3.1 hash file,
|
||||
>1 byte 3 hash file (?),
|
||||
>2 beshort 0x00 8-bit, no capitalization, 26 flags
|
||||
>2 beshort 0x01 7-bit, no capitalization, 26 flags
|
||||
>2 beshort 0x02 8-bit, capitalization, 26 flags
|
||||
>2 beshort 0x03 7-bit, capitalization, 26 flags
|
||||
>2 beshort 0x04 8-bit, no capitalization, 52 flags
|
||||
>2 beshort 0x05 7-bit, no capitalization, 52 flags
|
||||
>2 beshort 0x06 8-bit, capitalization, 52 flags
|
||||
>2 beshort 0x07 7-bit, capitalization, 52 flags
|
||||
>2 beshort 0x08 8-bit, no capitalization, 128 flags
|
||||
>2 beshort 0x09 7-bit, no capitalization, 128 flags
|
||||
>2 beshort 0x0A 8-bit, capitalization, 128 flags
|
||||
>2 beshort 0x0B 7-bit, capitalization, 128 flags
|
||||
>2 beshort 0x0C 8-bit, no capitalization, 256 flags
|
||||
>2 beshort 0x0D 7-bit, no capitalization, 256 flags
|
||||
>2 beshort 0x0E 8-bit, capitalization, 256 flags
|
||||
>2 beshort 0x0F 7-bit, capitalization, 256 flags
|
||||
>4 beshort >0 and %d string characters
|
||||
# ispell 4.0 hash files kromJx <kromJx@crosswinds.net>
|
||||
# Ispell 4.0
|
||||
0 string ISPL ispell
|
||||
>4 long x hash file version %d,
|
||||
>8 long x lexletters %d,
|
||||
>12 long x lexsize %d,
|
||||
>16 long x hashsize %d,
|
||||
>20 long x stblsize %d
|
|
@ -1,11 +0,0 @@
|
|||
#------------------------------------------------------------
|
||||
# Java ByteCode
|
||||
# From Larry Schwimmer (schwim@cs.stanford.edu)
|
||||
0 belong 0xcafebabe compiled Java class data,
|
||||
>6 beshort x version %d.
|
||||
>4 beshort x \b%d
|
||||
#------------------------------------------------------------
|
||||
# Java serialization
|
||||
# From Martin Pool (m.pool@pharos.com.au)
|
||||
0 beshort 0xaced Java serialization data
|
||||
>2 beshort >0x0004 \b, version %d
|
|
@ -1,61 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# JPEG images
|
||||
# SunOS 5.5.1 had
|
||||
#
|
||||
# 0 string \377\330\377\340 JPEG file
|
||||
# 0 string \377\330\377\356 JPG file
|
||||
#
|
||||
# both of which turn into "JPEG image data" here.
|
||||
#
|
||||
0 beshort 0xffd8 JPEG image data
|
||||
>6 string JFIF \b, JFIF standard
|
||||
>6 string Exif \b, EXIF standard
|
||||
# The following added by Erik Rossen <rossen@freesurf.ch> 1999-09-06
|
||||
# in a vain attempt to add image size reporting for JFIF. Note that these
|
||||
# tests are not fool-proof since some perfectly valid JPEGs are currently
|
||||
# impossible to specify in magic(4) format.
|
||||
# First, a little JFIF version info:
|
||||
>11 byte x \b %d.
|
||||
>12 byte x \b%02d
|
||||
# Next, the resolution or aspect ratio of the image:
|
||||
>13 byte 0 \b, aspect ratio
|
||||
>13 byte 1 \b, resolution (DPI)
|
||||
>13 byte 2 \b, resolution (DPCM)
|
||||
#>4 beshort x \b, segment length %d
|
||||
# Next, show thumbnail info, if it exists:
|
||||
>18 byte !0 \b, thumbnail %dx
|
||||
>>19 byte x \b%d
|
||||
# Here things get sticky. We can do ONE MORE marker segment with
|
||||
# indirect addressing, and that's all. It would be great if we could
|
||||
# do pointer arithemetic like in an assembler language. Christos?
|
||||
# And if there was some sort of looping construct to do searches, plus a few
|
||||
# named accumulators, it would be even more effective...
|
||||
# At least we can show a comment if no other segments got inserted before:
|
||||
>(4.S+5) byte 0xFE
|
||||
>>(4.S+8) string >\0 \b, "%s"
|
||||
#>(4.S+5) byte 0xFE \b, comment
|
||||
#>>(4.S+6) beshort x \b length=%d
|
||||
#>>(4.S+8) string >\0 \b, "%s"
|
||||
# Or, we can show the encoding type (I've included only the three most common)
|
||||
# and image dimensions if we are lucky and the SOFn (image segment) is here:
|
||||
>(4.S+5) byte 0xC0 \b, baseline
|
||||
>>(4.S+6) byte x \b, precision %d
|
||||
>>(4.S+7) beshort x \b, %dx
|
||||
>>(4.S+9) beshort x \b%d
|
||||
>(4.S+5) byte 0xC1 \b, extended sequential
|
||||
>>(4.S+6) byte x \b, precision %d
|
||||
>>(4.S+7) beshort x \b, %dx
|
||||
>>(4.S+9) beshort x \b%d
|
||||
>(4.S+5) byte 0xC2 \b, progressive
|
||||
>>(4.S+6) byte x \b, precision %d
|
||||
>>(4.S+7) beshort x \b, %dx
|
||||
>>(4.S+9) beshort x \b%d
|
||||
# I've commented-out quantisation table reporting. I doubt anyone cares yet.
|
||||
#>(4.S+5) byte 0xDB \b, quantisation table
|
||||
#>>(4.S+6) beshort x \b length=%d
|
||||
>14 beshort x \b, %d x
|
||||
>16 beshort x \b %d
|
||||
|
||||
# HSI is Handmade Software's proprietary JPEG encoding scheme
|
||||
0 string hsi1 JPEG image data, HSI proprietary
|
|
@ -1,8 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# karma: file(1) magic for Karma data files
|
||||
#
|
||||
# From <rgooch@atnf.csiro.au>
|
||||
|
||||
0 string KarmaRHD Version Karma Data Structure Version
|
||||
>16 belong x %lu
|
|
@ -1,4 +0,0 @@
|
|||
#------------------------------------------------------------------------------
|
||||
# DEC SRC Virtual Paper: Lectern files
|
||||
# Karl M. Hegbloom <karlheg@inetarena.com>
|
||||
0 string lect DEC SRC Virtual Paper Lectern file
|
|
@ -1,11 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# lex: file(1) magic for lex
|
||||
#
|
||||
# derived empirically, your offsets may vary!
|
||||
53 string yyprevious C program text (from lex)
|
||||
>3 string >\0 for %s
|
||||
# C program text from GNU flex, from Daniel Quinlan <quinlan@yggdrasil.com>
|
||||
21 string generated\ by\ flex C program text (from flex)
|
||||
# lex description file, from Daniel Quinlan <quinlan@yggdrasil.com>
|
||||
0 string %{ lex description text
|
|
@ -1,7 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# lif: file(1) magic for lif
|
||||
#
|
||||
# (Daniel Quinlan <quinlan@yggdrasil.com>)
|
||||
#
|
||||
0 beshort 0x8000 lif file
|
|
@ -1,167 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# linux: file(1) magic for Linux files
|
||||
#
|
||||
# Values for Linux/i386 binaries, from Daniel Quinlan <quinlan@yggdrasil.com>
|
||||
# The following basic Linux magic is useful for reference, but using
|
||||
# "long" magic is a better practice in order to avoid collisions.
|
||||
#
|
||||
# 2 leshort 100 Linux/i386
|
||||
# >0 leshort 0407 impure executable (OMAGIC)
|
||||
# >0 leshort 0410 pure executable (NMAGIC)
|
||||
# >0 leshort 0413 demand-paged executable (ZMAGIC)
|
||||
# >0 leshort 0314 demand-paged executable (QMAGIC)
|
||||
#
|
||||
0 lelong 0x00640107 Linux/i386 impure executable (OMAGIC)
|
||||
>16 lelong 0 \b, stripped
|
||||
0 lelong 0x00640108 Linux/i386 pure executable (NMAGIC)
|
||||
>16 lelong 0 \b, stripped
|
||||
0 lelong 0x0064010b Linux/i386 demand-paged executable (ZMAGIC)
|
||||
>16 lelong 0 \b, stripped
|
||||
0 lelong 0x006400cc Linux/i386 demand-paged executable (QMAGIC)
|
||||
>16 lelong 0 \b, stripped
|
||||
#
|
||||
0 string \007\001\000 Linux/i386 object file
|
||||
>20 lelong >0x1020 \b, DLL library
|
||||
# Linux-8086 stuff:
|
||||
0 string \01\03\020\04 Linux-8086 impure executable
|
||||
>28 long !0 not stripped
|
||||
0 string \01\03\040\04 Linux-8086 executable
|
||||
>28 long !0 not stripped
|
||||
#
|
||||
0 string \243\206\001\0 Linux-8086 object file
|
||||
#
|
||||
0 string \01\03\020\20 Minix-386 impure executable
|
||||
>28 long !0 not stripped
|
||||
0 string \01\03\040\20 Minix-386 executable
|
||||
>28 long !0 not stripped
|
||||
# core dump file, from Bill Reynolds <bill@goshawk.lanl.gov>
|
||||
216 lelong 0421 Linux/i386 core file
|
||||
>220 string >\0 of '%s'
|
||||
>200 lelong >0 (signal %d)
|
||||
#
|
||||
# LILO boot/chain loaders, from Daniel Quinlan <quinlan@yggdrasil.com>
|
||||
# this can be overridden by the DOS executable (COM) entry
|
||||
2 string LILO Linux/i386 LILO boot/chain loader
|
||||
#
|
||||
# Debian Packages, from Peter Tobias <tobias@server.et-inf.fho-emden.de>
|
||||
0 string 0.9
|
||||
>8 byte 0x0a old Debian Binary Package
|
||||
>>3 byte >0 \b, created by dpkg 0.9%c
|
||||
>>4 byte >0 pl%c
|
||||
# PSF fonts, from H. Peter Anvin <hpa@yggdrasil.com>
|
||||
0 leshort 0x0436 Linux/i386 PC Screen Font data,
|
||||
>2 byte 0 256 characters, no directory,
|
||||
>2 byte 1 512 characters, no directory,
|
||||
>2 byte 2 256 characters, Unicode directory,
|
||||
>2 byte 3 512 characters, Unicode directory,
|
||||
>3 byte >0 8x%d
|
||||
# Linux swap file, from Daniel Quinlan <quinlan@yggdrasil.com>
|
||||
4086 string SWAP-SPACE Linux/i386 swap file
|
||||
# according to man page of mkswap (8) March 1999
|
||||
4086 string SWAPSPACE2 Linux/i386 swap file (new style)
|
||||
# ECOFF magic for OSF/1 and Linux (only tested under Linux though)
|
||||
#
|
||||
# from Erik Troan (ewt@redhat.com) examining od dumps, so this
|
||||
# could be wrong
|
||||
# updated by David Mosberger (davidm@azstarnet.com) based on
|
||||
# GNU BFD and MIPS info found below.
|
||||
#
|
||||
0 leshort 0x0183 ECOFF alpha
|
||||
>24 leshort 0407 executable
|
||||
>24 leshort 0410 pure
|
||||
>24 leshort 0413 demand paged
|
||||
>8 long >0 not stripped
|
||||
>8 long 0 stripped
|
||||
>23 leshort >0 - version %ld.
|
||||
#
|
||||
# Linux kernel boot images, from Albert Cahalan <acahalan@cs.uml.edu>
|
||||
# and others such as Axel Kohlmeyer <akohlmey@rincewind.chemie.uni-ulm.de>
|
||||
# and Nicolás Lichtmaier <nick@debian.org>
|
||||
# All known start with: b8 c0 07 8e d8 b8 00 90 8e c0 b9 00 01 29 f6 29
|
||||
514 string HdrS Linux kernel
|
||||
>518 leshort >0
|
||||
>>529 byte 0 zImage data,
|
||||
>>529 byte 1 bzImage data,
|
||||
>0x048c byte 0x31
|
||||
>>0x048c string x version %s
|
||||
>0x0493 byte 0x31
|
||||
>>0x0493 string x version %s
|
||||
>0x048c byte 0x32
|
||||
>>0x048c string x version %s
|
||||
>0x0493 byte 0x32
|
||||
>>0x0493 string x version %s
|
||||
>0x04df byte 0x32
|
||||
>>0x04df string x version %s
|
||||
>0x04fb byte 0x32
|
||||
>>0x04fb string x version %s
|
||||
# This also matches new kernels, which were caught above by "HdrS".
|
||||
0 belong 0xb8c0078e Linux kernel
|
||||
>0x1e3 string Loading version 1.3.79 or older
|
||||
>0x1e9 string Loading from prehistoric times
|
||||
# LSM entries - Nicolás Lichtmaier <nick@feedback.net.ar>
|
||||
0 string Begin3 Linux Software Map entry text
|
||||
|
||||
############################################################################
|
||||
# Linux kernel versions
|
||||
|
||||
0 string \xb8\xc0\x07\x8e\xd8\xb8\x00\x90 Linux
|
||||
>497 leshort 0 x86 boot sector
|
||||
>>514 belong 0x8e of a kernel from the dawn of time!
|
||||
>>514 belong 0x908ed8b4 version 0.99-1.1.42
|
||||
>>514 belong 0x908ed8b8 for memtest86
|
||||
|
||||
>497 leshort !0 x86 kernel
|
||||
>>504 leshort >0 RAMdisksize=%u KB
|
||||
>>502 leshort >0 swap=0x%X
|
||||
>>508 leshort >0 root=0x%X
|
||||
>>>498 leshort 1 \b-ro
|
||||
>>>498 leshort 0 \b-rw
|
||||
>>506 leshort 0xFFFF vga=normal
|
||||
>>506 leshort 0xFFFE vga=extended
|
||||
>>506 leshort 0xFFFD vga=ask
|
||||
>>506 leshort >0 vga=%d
|
||||
>>514 belong 0x908ed881 version 1.1.43-1.1.45
|
||||
>>514 belong 0x15b281cd
|
||||
>>>0xa8e belong 0x55AA5a5a version 1.1.46-1.2.13,1.3.0
|
||||
>>>0xa99 belong 0x55AA5a5a version 1.3.1,2
|
||||
>>>0xaa3 belong 0x55AA5a5a version 1.3.3-1.3.30
|
||||
>>>0xaa6 belong 0x55AA5a5a version 1.3.31-1.3.41
|
||||
>>>0xb2b belong 0x55AA5a5a version 1.3.42-1.3.45
|
||||
>>>0xaf7 belong 0x55AA5a5a version 1.3.46-1.3.72
|
||||
>>514 string HdrS
|
||||
>>>518 leshort >0x1FF
|
||||
>>>>529 byte 0 \b, zImage
|
||||
>>>>529 byte 1 \b, bzImage
|
||||
>>>>(526.s+0x200) string >\0 \b, version %s
|
||||
|
||||
# Linux boot sector thefts.
|
||||
0 belong 0xb8c0078e Linux
|
||||
>0x1e6 belong 0x454c4b53 ELKS Kernel
|
||||
>0x1e6 belong !0x454c4b53 style boot sector
|
||||
|
||||
############################################################################
|
||||
# Linux 8086 executable
|
||||
0 lelong&0xFF0000FF 0xC30000E9 Linux-Dev86 executable, headerless
|
||||
>5 string .
|
||||
>>4 string >\0 \b, libc version %s
|
||||
|
||||
0 lelong&0xFF00FFFF 0x4000301 Linux-8086 executable
|
||||
>2 byte&0x01 !0 \b, unmapped zero page
|
||||
>2 byte&0x20 0 \b, impure
|
||||
>2 byte&0x20 !0
|
||||
>>2 byte&0x10 !0 \b, A_EXEC
|
||||
>2 byte&0x02 !0 \b, A_PAL
|
||||
>2 byte&0x04 !0 \b, A_NSYM
|
||||
>2 byte&0x08 !0 \b, A_STAND
|
||||
>2 byte&0x40 !0 \b, A_PURE
|
||||
>2 byte&0x80 !0 \b, A_TOVLY
|
||||
>28 long !0 \b, not stripped
|
||||
>37 string .
|
||||
>>36 string >\0 \b, libc version %s
|
||||
|
||||
# 0 lelong&0xFF00FFFF 0x10000301 ld86 I80386 executable
|
||||
# 0 lelong&0xFF00FFFF 0xB000301 ld86 M68K executable
|
||||
# 0 lelong&0xFF00FFFF 0xC000301 ld86 NS16K executable
|
||||
# 0 lelong&0xFF00FFFF 0x17000301 ld86 SPARC executable
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# lisp: file(1) magic for lisp programs
|
||||
#
|
||||
# various lisp types, from Daniel Quinlan (quinlan@yggdrasil.com)
|
||||
|
||||
# This is a guess, but a good one.
|
||||
0 string ;; Lisp/Scheme program text
|
||||
|
||||
# Emacs 18 - this is always correct, but not very magical.
|
||||
0 string \012( Emacs v18 byte-compiled Lisp data
|
||||
# Emacs 19+ - ver. recognition added by Ian Springer
|
||||
# Also applies to XEmacs 19+ .elc files; could tell them apart if we had regexp
|
||||
# support or similar - Chris Chittleborough <cchittleborough@yahoo.com.au>
|
||||
0 string ;ELC
|
||||
>4 byte >19
|
||||
>4 byte <32 Emacs/XEmacs v%d byte-compiled Lisp data
|
||||
|
||||
# Files produced by CLISP Common Lisp From: Bruno Haible <haible@ilog.fr>
|
||||
0 string (SYSTEM::VERSION\040' CLISP byte-compiled Lisp program text
|
||||
0 long 0x70768BD2 CLISP memory image data
|
||||
0 long 0xD28B7670 CLISP memory image data, other endian
|
||||
|
||||
# Files produced by GNU gettext
|
||||
0 long 0xDE120495 GNU-format message catalog data
|
||||
0 long 0x950412DE GNU-format message catalog data
|
||||
|
||||
#.com and .bin for MIT scheme
|
||||
0 string \372\372\372\372 MIT scheme (library?)
|
|
@ -1,43 +0,0 @@
|
|||
#------------------------------------------------------------------------------
|
||||
# mach file description
|
||||
#
|
||||
0 belong 0xcafebabe Mach-O fat file
|
||||
>4 belong 1 with 1 architecture
|
||||
>4 belong >1
|
||||
>>4 belong x with %ld architectures
|
||||
#
|
||||
0 belong 0xfeedface Mach-O
|
||||
>12 belong 1 object
|
||||
>12 belong 2 executable
|
||||
>12 belong 3 shared library
|
||||
>12 belong 4 core
|
||||
>12 belong 5 preload executable
|
||||
>12 belong >5
|
||||
>>12 belong x filetype=%ld
|
||||
>4 belong <0
|
||||
>>4 belong x architecture=%ld
|
||||
>4 belong 1 vax
|
||||
>4 belong 2 romp
|
||||
>4 belong 3 architecture=3
|
||||
>4 belong 4 ns32032
|
||||
>4 belong 5 ns32332
|
||||
>4 belong 6 for m68k architecture
|
||||
# from NeXTstep 3.0 <mach/machine.h>
|
||||
# i.e. mc680x0_all, ignore
|
||||
# >>8 belong 1 (mc68030)
|
||||
>>8 belong 2 (mc68040)
|
||||
>>8 belong 3 (mc68030 only)
|
||||
>4 belong 7 i386
|
||||
>4 belong 8 mips
|
||||
>4 belong 9 ns32532
|
||||
>4 belong 10 architecture=10
|
||||
>4 belong 11 hp pa-risc
|
||||
>4 belong 12 acorn
|
||||
>4 belong 13 m88k
|
||||
>4 belong 14 sparc
|
||||
>4 belong 15 i860-big
|
||||
>4 belong 16 i860
|
||||
>4 belong 17 rs6000
|
||||
>4 belong 18 powerPC
|
||||
>4 belong >18
|
||||
>>4 belong x architecture=%ld
|
|
@ -1,339 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# macintosh description
|
||||
#
|
||||
# BinHex is the Macintosh ASCII-encoded file format (see also "apple")
|
||||
# Daniel Quinlan, quinlan@yggdrasil.com
|
||||
11 string must\ be\ converted\ with\ BinHex BinHex binary text
|
||||
>41 string x \b, version %.3s
|
||||
|
||||
# Stuffit archives are the de facto standard of compression for Macintosh
|
||||
# files obtained from most archives. (franklsm@tuns.ca)
|
||||
0 string SIT! StuffIt Archive (data)
|
||||
>2 string x : %s
|
||||
0 string SITD StuffIt Deluxe (data)
|
||||
>2 string x : %s
|
||||
0 string Seg StuffIt Deluxe Segment (data)
|
||||
>2 string x : %s
|
||||
|
||||
# Newer StuffIt archives (grant@netbsd.org)
|
||||
0 string StuffIt StuffIt Archive
|
||||
>162 string >0 : %s
|
||||
|
||||
# Macintosh Applications and Installation binaries (franklsm@tuns.ca)
|
||||
0 string APPL Macintosh Application (data)
|
||||
>2 string x \b: %s
|
||||
|
||||
# Macintosh System files (franklsm@tuns.ca)
|
||||
0 string zsys Macintosh System File (data)
|
||||
0 string FNDR Macintosh Finder (data)
|
||||
0 string libr Macintosh Library (data)
|
||||
>2 string x : %s
|
||||
0 string shlb Macintosh Shared Library (data)
|
||||
>2 string x : %s
|
||||
0 string cdev Macintosh Control Panel (data)
|
||||
>2 string x : %s
|
||||
0 string INIT Macintosh Extension (data)
|
||||
>2 string x : %s
|
||||
0 string FFIL Macintosh Truetype Font (data)
|
||||
>2 string x : %s
|
||||
0 string LWFN Macintosh Postscript Font (data)
|
||||
>2 string x : %s
|
||||
|
||||
# Additional Macintosh Files (franklsm@tuns.ca)
|
||||
0 string PACT Macintosh Compact Pro Archive (data)
|
||||
>2 string x : %s
|
||||
0 string ttro Macintosh TeachText File (data)
|
||||
>2 string x : %s
|
||||
0 string TEXT Macintosh TeachText File (data)
|
||||
>2 string x : %s
|
||||
0 string PDF Macintosh PDF File (data)
|
||||
>2 string x : %s
|
||||
|
||||
# MacBinary format (Eric Fischer, enf@pobox.com)
|
||||
#
|
||||
# Unfortunately MacBinary doesn't really have a magic number prior
|
||||
# to the MacBinary III format. The checksum is really the way to
|
||||
# do it, but the magic file format isn't up to the challenge.
|
||||
#
|
||||
# 0 byte 0
|
||||
# 1 byte # filename length
|
||||
# 2 string # filename
|
||||
# 65 string # file type
|
||||
# 69 string # file creator
|
||||
# 73 byte # Finder flags
|
||||
# 74 byte 0
|
||||
# 75 beshort # vertical posn in window
|
||||
# 77 beshort # horiz posn in window
|
||||
# 79 beshort # window or folder ID
|
||||
# 81 byte # protected?
|
||||
# 82 byte 0
|
||||
# 83 belong # length of data segment
|
||||
# 87 belong # length of resource segment
|
||||
# 91 belong # file creation date
|
||||
# 95 belong # file modification date
|
||||
# 99 beshort # length of comment after resource
|
||||
# 101 byte # new Finder flags
|
||||
# 102 string mBIN # (only in MacBinary III)
|
||||
# 106 byte # char. code of file name
|
||||
# 107 byte # still more Finder flags
|
||||
# 116 belong # total file length
|
||||
# 120 beshort # length of add'l header
|
||||
# 122 byte 129 # for MacBinary II
|
||||
# 122 byte 130 # for MacBinary III
|
||||
# 123 byte 129 # minimum version that can read fmt
|
||||
# 124 beshort # checksum
|
||||
#
|
||||
# This attempts to use the version numbers as a magic number, requiring
|
||||
# that the first one be 0x80, 0x81, 0x82, or 0x83, and that the second
|
||||
# be 0x81. This works for the files I have, but maybe not for everyone's.
|
||||
|
||||
122 beshort&0xFCFF 0x8081 Macintosh MacBinary data
|
||||
|
||||
# MacBinary I doesn't have the version number field at all, but MacBinary II
|
||||
# has been in use since 1987 so I hope there aren't many really old files
|
||||
# floating around that this will miss. The original spec calls for using
|
||||
# the nulls in 0, 74, and 82 as the magic number.
|
||||
#
|
||||
# Another possibility, that would also work for MacBinary I, is to use
|
||||
# the assumption that 65-72 will all be ASCII (0x20-0x7F), that 73 will
|
||||
# have bits 1 (changed), 2 (busy), 3 (bozo), and 6 (invisible) unset,
|
||||
# and that 74 will be 0. So something like
|
||||
#
|
||||
# 71 belong&0x80804EFF 0x00000000 Macintosh MacBinary data
|
||||
#
|
||||
# >73 byte&0x01 0x01 \b, inited
|
||||
# >73 byte&0x02 0x02 \b, changed
|
||||
# >73 byte&0x04 0x04 \b, busy
|
||||
# >73 byte&0x08 0x08 \b, bozo
|
||||
# >73 byte&0x10 0x10 \b, system
|
||||
# >73 byte&0x10 0x20 \b, bundle
|
||||
# >73 byte&0x10 0x40 \b, invisible
|
||||
# >73 byte&0x10 0x80 \b, locked
|
||||
|
||||
>65 string x \b, type "%4.4s"
|
||||
|
||||
>65 string 8BIM (PhotoShop)
|
||||
>65 string ALB3 (PageMaker 3)
|
||||
>65 string ALB4 (PageMaker 4)
|
||||
>65 string ALT3 (PageMaker 3)
|
||||
>65 string APPL (application)
|
||||
>65 string AWWP (AppleWorks word processor)
|
||||
>65 string CIRC (simulated circuit)
|
||||
>65 string DRWG (MacDraw)
|
||||
>65 string EPSF (Encapsulated PostScript)
|
||||
>65 string FFIL (font suitcase)
|
||||
>65 string FKEY (function key)
|
||||
>65 string FNDR (Macintosh Finder)
|
||||
>65 string GIFf (GIF image)
|
||||
>65 string Gzip (GNU gzip)
|
||||
>65 string INIT (system extension)
|
||||
>65 string LIB\ (library)
|
||||
>65 string LWFN (PostScript font)
|
||||
>65 string MSBC (Microsoft BASIC)
|
||||
>65 string PACT (Compact Pro archive)
|
||||
>65 string PDF\ (Portable Document Format)
|
||||
>65 string PICT (picture)
|
||||
>65 string PNTG (MacPaint picture)
|
||||
>65 string PREF (preferences)
|
||||
>65 string PROJ (Think C project)
|
||||
>65 string QPRJ (Think Pascal project)
|
||||
>65 string SCFL (Defender scores)
|
||||
>65 string SCRN (startup screen)
|
||||
>65 string SITD (StuffIt Deluxe)
|
||||
>65 string SPn3 (SuperPaint)
|
||||
>65 string STAK (HyperCard stack)
|
||||
>65 string Seg\ (StuffIt segment)
|
||||
>65 string TARF (Unix tar archive)
|
||||
>65 string TEXT (ASCII)
|
||||
>65 string TIFF (TIFF image)
|
||||
>65 string TOVF (Eudora table of contents)
|
||||
>65 string WDBN (Microsoft Word word processor)
|
||||
>65 string WORD (MacWrite word processor)
|
||||
>65 string XLS\ (Microsoft Excel)
|
||||
>65 string ZIVM (compress (.Z))
|
||||
>65 string ZSYS (Pre-System 7 system file)
|
||||
>65 string acf3 (Aldus FreeHand)
|
||||
>65 string cdev (control panel)
|
||||
>65 string dfil (Desk Acessory suitcase)
|
||||
>65 string libr (library)
|
||||
>65 string nX^d (WriteNow word processor)
|
||||
>65 string nX^w (WriteNow dictionary)
|
||||
>65 string rsrc (resource)
|
||||
>65 string scbk (Scrapbook)
|
||||
>65 string shlb (shared library)
|
||||
>65 string ttro (SimpleText read-only)
|
||||
>65 string zsys (system file)
|
||||
|
||||
>69 string x \b, creator "%4.4s"
|
||||
|
||||
# Somewhere, Apple has a repository of registered Creator IDs. These are
|
||||
# just the ones that I happened to have files from and was able to identify.
|
||||
|
||||
>69 string 8BIM (Adobe Photoshop)
|
||||
>69 string ALD3 (PageMaker 3)
|
||||
>69 string ALD4 (PageMaker 4)
|
||||
>69 string ALFA (Alpha editor)
|
||||
>69 string APLS (Apple Scanner)
|
||||
>69 string APSC (Apple Scanner)
|
||||
>69 string BRKL (Brickles)
|
||||
>69 string BTFT (BitFont)
|
||||
>69 string CCL2 (Common Lisp 2)
|
||||
>69 string CCL\ (Common Lisp)
|
||||
>69 string CDmo (The Talking Moose)
|
||||
>69 string CPCT (Compact Pro)
|
||||
>69 string CSOm (Eudora)
|
||||
>69 string DMOV (Font/DA Mover)
|
||||
>69 string DSIM (DigSim)
|
||||
>69 string EDIT (Macintosh Edit)
|
||||
>69 string ERIK (Macintosh Finder)
|
||||
>69 string EXTR (self-extracting archive)
|
||||
>69 string Gzip (GNU gzip)
|
||||
>69 string KAHL (Think C)
|
||||
>69 string LWFU (LaserWriter Utility)
|
||||
>69 string LZIV (compress)
|
||||
>69 string MACA (MacWrite)
|
||||
>69 string MACS (Macintosh operating system)
|
||||
>69 string MAcK (MacKnowledge terminal emulator)
|
||||
>69 string MLND (Defender)
|
||||
>69 string MPNT (MacPaint)
|
||||
>69 string MSBB (Microsoft BASIC (binary))
|
||||
>69 string MSWD (Microsoft Word)
|
||||
>69 string NCSA (NCSA Telnet)
|
||||
>69 string PJMM (Think Pascal)
|
||||
>69 string PSAL (Hunt the Wumpus)
|
||||
>69 string PSI2 (Apple File Exchange)
|
||||
>69 string R*ch (BBEdit)
|
||||
>69 string RMKR (Resource Maker)
|
||||
>69 string RSED (Resource Editor)
|
||||
>69 string Rich (BBEdit)
|
||||
>69 string SIT! (StuffIt)
|
||||
>69 string SPNT (SuperPaint)
|
||||
>69 string Unix (NeXT Mac filesystem)
|
||||
>69 string VIM! (Vim editor)
|
||||
>69 string WILD (HyperCard)
|
||||
>69 string XCEL (Microsoft Excel)
|
||||
>69 string aCa2 (Fontographer)
|
||||
>69 string aca3 (Aldus FreeHand)
|
||||
>69 string dosa (Macintosh MS-DOS file system)
|
||||
>69 string movr (Font/DA Mover)
|
||||
>69 string nX^n (WriteNow)
|
||||
>69 string pdos (Apple ProDOS file system)
|
||||
>69 string scbk (Scrapbook)
|
||||
>69 string ttxt (SimpleText)
|
||||
>69 string ufox (Foreign File Access)
|
||||
|
||||
# Just in case...
|
||||
|
||||
102 string mBIN MacBinary III data with surprising version number
|
||||
|
||||
# sas magic from Bruce Foster (bef@nwu.edu)
|
||||
#
|
||||
#0 string SAS SAS
|
||||
#>8 string x %s
|
||||
0 string SAS SAS
|
||||
>24 string DATA data file
|
||||
>24 string CATALOG catalog
|
||||
>24 string INDEX data file index
|
||||
>24 string VIEW data view
|
||||
# spss magic for SPSS system and portable files,
|
||||
# from Bruce Foster (bef@nwu.edu).
|
||||
|
||||
0 long 0xc1e2c3c9 SPSS Portable File
|
||||
>40 string x %s
|
||||
|
||||
0 string $FL2 SPSS System File
|
||||
>24 string x %s
|
||||
|
||||
# Macintosh filesystem data
|
||||
# From "Tom N Harris" <telliamed@mac.com>
|
||||
# The MacOS epoch begins on 1 Jan 1904 instead of 1 Jan 1970, so these
|
||||
# entries depend on the data arithmetic added after v.35
|
||||
# There's also some Pascal strings in here, ditto...
|
||||
|
||||
# The boot block signature, according to IM:Files, is
|
||||
# "for HFS volumes, this field always contains the value 0x4C4B."
|
||||
# But if this is true for MFS or HFS+ volumes, I don't know.
|
||||
# Alternatively, the boot block is supposed to be zeroed if it's
|
||||
# unused, so a simply >0 should suffice.
|
||||
|
||||
0x400 beshort 0xD2D7 Macintosh MFS data
|
||||
>0 beshort 0x4C4B (bootable)
|
||||
>0x40a beshort &0x8000 (locked)
|
||||
>0x402 beldate-0x7C25B080 x created: %s,
|
||||
>0x406 beldate-0x7C25B080 >0 last backup: %s,
|
||||
>0x414 belong x block size: %d,
|
||||
>0x412 beshort x number of blocks: %d,
|
||||
>0x424 pstring x volume name: %s
|
||||
|
||||
0x400 beshort 0x4244 Macintosh HFS data
|
||||
>0 beshort 0x4C4B (bootable)
|
||||
>0x40a beshort &0x8000 (locked)
|
||||
>0x40a beshort ^0x0100 (mounted)
|
||||
>0x40a beshort &0x0800 (unclean)
|
||||
>0x402 beldate-0x7C25B080 x created: %s,
|
||||
>0x406 beldate-0x7C25B080 x last modified: %s,
|
||||
>0x440 beldate-0x7C25B080 >0 last backup: %s,
|
||||
>0x414 belong x block size: %d,
|
||||
>0x412 beshort x number of blocks: %d,
|
||||
>0x424 pstring x volume name: %s
|
||||
#>0x480 beshort =0x482B Embedded HFS+ Volume:
|
||||
#>>((0x482*(0x414))+(0x41c*512)) x \b
|
||||
# Well, this is (theoretically) how we could do this. But it occurs to
|
||||
# me that we likely don't read in a large enough chunk. I don't have any
|
||||
# HFS+ volumes to see what a typical offset would be.
|
||||
|
||||
0x400 beshort 0x482B Macintosh HFS Extended
|
||||
>&2 beshort x version %d data
|
||||
>0 beshort 0x4C4B (bootable)
|
||||
>&4 belong ^0x00000100 (mounted)
|
||||
>&4 belong &0x00000800 (unclean)
|
||||
>&4 belong &0x00008000 (locked)
|
||||
>&8 string x last mounted by: '%.4s',
|
||||
# really, that should be treated as a belong and we print a string
|
||||
# based on the value. TN1150 only mentions '8.10' for "MacOS 8.1"
|
||||
>&16 beldate-0x7C25B080 x created: %s,
|
||||
>&20 beldate-0x7C25B080 x last modified: %s,
|
||||
>&24 beldate-0x7C25B080 >0 last backup: %s,
|
||||
>&28 beldate-0x7C25B080 >0 last checked: %s,
|
||||
>&40 belong x block size: %d,
|
||||
>&44 belong x number of blocks: %d,
|
||||
>&48 belong x free blocks: %d
|
||||
|
||||
# I don't think this is really necessary since it doesn't do much and
|
||||
# anything with a valid driver descriptor will also have a valid
|
||||
# partition map
|
||||
#0 beshort 0x4552 Apple Device Driver data
|
||||
#>&24 beshort =1 \b, MacOS
|
||||
|
||||
# Is that the partition type a cstring or a pstring? Well, IM says "strings
|
||||
# shorter than 32 bytes must be terminated with NULL" so I'll treat it as a
|
||||
# cstring. Of course, partitions can contain more than four entries, but
|
||||
# what're you gonna do?
|
||||
0x200 beshort 0x504D Apple Partition data
|
||||
>&2 beshort x block size: %d
|
||||
>&48 string x first type: %s,
|
||||
>&12 belong x number of blocks: %d,
|
||||
>(&0x2.S) beshort 0x504D
|
||||
>>&48 string x second type: %s
|
||||
>>&12 belong x number of blocks: %d,
|
||||
>>(&0x2.S) beshort 0x504D
|
||||
>>>&48 string x third type: %s
|
||||
>>>&12 belong x number of blocks: %d,
|
||||
>>>(&0x2.S) beshort 0x504D
|
||||
>>>>&48 string x fourth type: %s
|
||||
>>>>&12 belong x number of blocks: %d,
|
||||
# AFAIK, only the signature is different
|
||||
0x200 beshort 0x5453 Apple Old Partition data
|
||||
>&2 beshort x block size: %d
|
||||
>&48 string x first type: %s,
|
||||
>&12 belong x number of blocks: %d,
|
||||
>(&0x2.S) beshort 0x504D
|
||||
>>&48 string x second type: %s
|
||||
>>&12 belong x number of blocks: %d,
|
||||
>>(&0x2.S) beshort 0x504D
|
||||
>>>&48 string x third type: %s
|
||||
>>>&12 belong x number of blocks: %d,
|
||||
>>>(&0x2.S) beshort 0x504D
|
||||
>>>>&48 string x fourth type: %s
|
||||
>>>>&12 belong x number of blocks: %d,
|
|
@ -1,9 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# magic: file(1) magic for magic files
|
||||
#
|
||||
0 string #\ Magic magic text file for file(1) cmd
|
||||
0 lelong 0xF11E041C magic binary file for file(1) cmd
|
||||
>4 lelong x (version %d) (little endian)
|
||||
0 belong 0xF11E041C magic binary file for file(1) cmd
|
||||
>4 belong x (version %d) (big endian)
|
|
@ -1,28 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# mail.news: file(1) magic for mail and news
|
||||
#
|
||||
# Unfortunately, saved netnews also has From line added in some news software.
|
||||
#0 string From mail text
|
||||
# There are tests to ascmagic.c to cope with mail and news.
|
||||
0 string Relay-Version: old news text
|
||||
0 string #!\ rnews batched news text
|
||||
0 string N#!\ rnews mailed, batched news text
|
||||
0 string Forward\ to mail forwarding text
|
||||
0 string Pipe\ to mail piping text
|
||||
0 string Return-Path: smtp mail text
|
||||
0 string Path: news text
|
||||
0 string Xref: news text
|
||||
0 string From: news or mail text
|
||||
0 string Article saved news text
|
||||
0 string BABYL Emacs RMAIL text
|
||||
0 string Received: RFC 822 mail text
|
||||
0 string MIME-Version: MIME entity text
|
||||
#0 string Content- MIME entity text
|
||||
|
||||
# TNEF files...
|
||||
0 lelong 0x223E9F78 Transport Neutral Encapsulation Format
|
||||
|
||||
# From: Kevin Sullivan <ksulliva@psc.edu>
|
||||
0 string *mbx* MBX mail folder
|
||||
|
|
@ -1,57 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# maple: file(1) magic for maple files
|
||||
# "H. Nanosecond" <aldomel@ix.netcom.com>
|
||||
# Maple V release 4, a multi-purpose math program
|
||||
#
|
||||
|
||||
# maple library .lib
|
||||
0 string \000MVR4\nI MapleVr4 library
|
||||
|
||||
# .ind
|
||||
# no magic for these :-(
|
||||
# they are compiled indexes for maple files
|
||||
|
||||
# .hdb
|
||||
0 string \000\004\000\000 Maple help database
|
||||
|
||||
# .mhp
|
||||
# this has the form <PACKAGE=name>
|
||||
0 string \<PACKAGE= Maple help file
|
||||
0 string \<HELP\ NAME= Maple help file
|
||||
0 string \n\<HELP\ NAME= Maple help file with extra carriage return at start (yuck)
|
||||
0 string #\ Newton Maple help file, old style
|
||||
0 string #\ daub Maple help file, old style
|
||||
0 string #=========== Maple help file, old style
|
||||
|
||||
# .mws
|
||||
0 string \000\000\001\044\000\221 Maple worksheet
|
||||
#this is anomalous
|
||||
0 string WriteNow\000\002\000\001\000\000\000\000\100\000\000\000\000\000 Maple worksheet, but weird
|
||||
# this has the form {VERSION 2 3 "IBM INTEL NT" "2.3" }\n
|
||||
# that is {VERSION major_version miunor_version computer_type version_string}
|
||||
0 string {VERSION\ Maple worksheet
|
||||
>9 string >\0 version %.1s.
|
||||
>>10 string
|
||||
>>>11 string >\0 %.1s
|
||||
|
||||
# .mps
|
||||
0 string \0\0\001$ Maple something
|
||||
# from byte 4 it is either 'nul E' or 'soh R'
|
||||
# I think 'nul E' means a file that was saved as a different name
|
||||
# a sort of revision marking
|
||||
# 'soh R' means new
|
||||
>4 string \000\105 An old revision
|
||||
>4 string \001\122 The latest save
|
||||
|
||||
# .mpl
|
||||
# some of these are the same as .mps above
|
||||
#0000000 000 000 001 044 000 105 same as .mps
|
||||
#0000000 000 000 001 044 001 122 same as .mps
|
||||
|
||||
0 string #\n##\ <SHAREFILE= Maple something
|
||||
0 string \n#\n##\ <SHAREFILE= Maple something
|
||||
0 string ##\ <SHAREFILE= Maple something
|
||||
0 string #\r##\ <SHAREFILE= Maple something
|
||||
0 string \r#\r##\ <SHAREFILE= Maple something
|
||||
0 string #\ \r##\ <DESCRIBE> Maple something anomalous.
|
|
@ -1,59 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# mathematica: file(1) magic for mathematica files
|
||||
# "H. Nanosecond" <aldomel@ix.netcom.com>
|
||||
# Mathematica a multi-purpose math program
|
||||
# versions 2.2 and 3.0
|
||||
|
||||
#mathematica .mb
|
||||
0 string \064\024\012\000\035\000\000\000 Mathematica version 2 notebook
|
||||
0 string \064\024\011\000\035\000\000\000 Mathematica version 2 notebook
|
||||
|
||||
# .ma
|
||||
# multiple possibilites:
|
||||
|
||||
0 string (*^\n\n::[\011frontEndVersion\ =\ Mathematica notebook
|
||||
#>41 string >\0 %s
|
||||
|
||||
#0 string (*^\n\n::[\011palette Mathematica notebook version 2.x
|
||||
|
||||
#0 string (*^\n\n::[\011Information Mathematica notebook version 2.x
|
||||
#>675 string >\0 %s #doesn't work well
|
||||
|
||||
# there may be 'cr' instread of 'nl' in some does this matter?
|
||||
|
||||
# generic:
|
||||
0 string (*^\r\r::[\011 Mathematica notebook version 2.x
|
||||
0 string \(\*\^\r\n\r\n\:\:\[\011 Mathematica notebook version 2.x
|
||||
0 string (*^\015 Mathematica notebook version 2.x
|
||||
0 string (*^\n\r\n\r::[\011 Mathematica notebook version 2.x
|
||||
0 string (*^\r::[\011 Mathematica notebook version 2.x
|
||||
0 string (*^\r\n::[\011 Mathematica notebook version 2.x
|
||||
0 string (*^\n\n::[\011 Mathematica notebook version 2.x
|
||||
0 string (*^\n::[\011 Mathematica notebook version 2.x
|
||||
|
||||
|
||||
# Mathematica .mx files
|
||||
|
||||
#0 string (*This\ is\ a\ Mathematica\ binary\ dump\ file.\ It\ can\ be\ loaded\ with\ Get.*) Mathematica binary file
|
||||
0 string (*This\ is\ a\ Mathematica\ binary\ Mathematica binary file
|
||||
#>71 string \000\010\010\010\010\000\000\000\000\000\000\010\100\010\000\000\000
|
||||
# >71... is optional
|
||||
>88 string >\0 from %s
|
||||
|
||||
|
||||
# Mathematica files PBF:
|
||||
# 115 115 101 120 102 106 000 001 000 000 000 203 000 001 000
|
||||
0 string MMAPBF\000\001\000\000\000\203\000\001\000 Mathematica PBF (fonts I think)
|
||||
|
||||
# .ml files These are menu resources I think
|
||||
# these start with "[0-9][0-9][0-9]\ A~[0-9][0-9][0-9]\
|
||||
# how to put that into a magic rule?
|
||||
4 string \ A~ MAthematica .ml file
|
||||
|
||||
# .nb files
|
||||
#too long 0 string (***********************************************************************\n\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Mathematica-Compatible Notebook Mathematica 3.0 notebook
|
||||
0 string (*********************** Mathematica 3.0 notebook
|
||||
|
||||
# other (* matches it is a comment start in these langs
|
||||
0 string (* Mathematica, or Pascal, Modula-2 or 3 code
|
|
@ -1,36 +0,0 @@
|
|||
#------------------------------------------------------------------------------
|
||||
# Mavroyanopoulos Nikos <nmav@hellug.gr>
|
||||
# mcrypt: file(1) magic for mcrypt 2.2.x;
|
||||
0 string \0m\3 mcrypt 2.5 encrypted data,
|
||||
>4 string >\0 algorithm: %s,
|
||||
>>&1 leshort >0 keysize: %d bytes,
|
||||
>>>&0 string >\0 mode: %s,
|
||||
|
||||
0 string \0m\2 mcrypt 2.2 encrypted data,
|
||||
>3 byte 0 algorithm: blowfish-448,
|
||||
>3 byte 1 algorithm: DES,
|
||||
>3 byte 2 algorithm: 3DES,
|
||||
>3 byte 3 algorithm: 3-WAY,
|
||||
>3 byte 4 algorithm: GOST,
|
||||
>3 byte 6 algorithm: SAFER-SK64,
|
||||
>3 byte 7 algorithm: SAFER-SK128,
|
||||
>3 byte 8 algorithm: CAST-128,
|
||||
>3 byte 9 algorithm: xTEA,
|
||||
>3 byte 10 algorithm: TWOFISH-128,
|
||||
>3 byte 11 algorithm: RC2,
|
||||
>3 byte 12 algorithm: TWOFISH-192,
|
||||
>3 byte 13 algorithm: TWOFISH-256,
|
||||
>3 byte 14 algorithm: blowfish-128,
|
||||
>3 byte 15 algorithm: blowfish-192,
|
||||
>3 byte 16 algorithm: blowfish-256,
|
||||
>3 byte 100 algorithm: RC6,
|
||||
>3 byte 101 algorithm: IDEA,
|
||||
>4 byte 0 mode: CBC,
|
||||
>4 byte 1 mode: ECB,
|
||||
>4 byte 2 mode: CFB,
|
||||
>4 byte 3 mode: OFB,
|
||||
>4 byte 4 mode: nOFB,
|
||||
>5 byte 0 keymode: 8bit
|
||||
>5 byte 1 keymode: 4bit
|
||||
>5 byte 2 keymode: SHA-1 hash
|
||||
>5 byte 3 keymode: MD5 hash
|
|
@ -1,7 +0,0 @@
|
|||
#------------------------------------------------------------------------------
|
||||
# mime: file(1) magic for MIME encoded files
|
||||
#
|
||||
0 string Content-Type:\
|
||||
>14 string >\0 %s
|
||||
0 string Content-Type:
|
||||
>13 string >\0 %s
|
|
@ -1,177 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# mips: file(1) magic for Silicon Graphics (MIPS, IRIS, IRIX, etc.)
|
||||
# Dec Ultrix (MIPS)
|
||||
# all of SGI's *current* machines and OSes run in big-endian mode on the
|
||||
# MIPS machines, as far as I know.
|
||||
#
|
||||
# XXX - what is the blank "-" line?
|
||||
#
|
||||
# kbd file definitions
|
||||
0 string kbd!map kbd map file
|
||||
>8 byte >0 Ver %d:
|
||||
>10 short >0 with %d table(s)
|
||||
0 belong 0407 old SGI 68020 executable
|
||||
0 belong 0410 old SGI 68020 pure executable
|
||||
0 beshort 0x8765 disk quotas file
|
||||
0 beshort 0x0506 IRIS Showcase file
|
||||
>2 byte 0x49 -
|
||||
>3 byte x - version %ld
|
||||
0 beshort 0x0226 IRIS Showcase template
|
||||
>2 byte 0x63 -
|
||||
>3 byte x - version %ld
|
||||
0 belong 0x5343464d IRIS Showcase file
|
||||
>4 byte x - version %ld
|
||||
0 belong 0x5443464d IRIS Showcase template
|
||||
>4 byte x - version %ld
|
||||
0 belong 0xdeadbabe IRIX Parallel Arena
|
||||
>8 belong >0 - version %ld
|
||||
#
|
||||
0 beshort 0x0160 MIPSEB ECOFF executable
|
||||
>20 beshort 0407 (impure)
|
||||
>20 beshort 0410 (swapped)
|
||||
>20 beshort 0413 (paged)
|
||||
>8 belong >0 not stripped
|
||||
>8 belong 0 stripped
|
||||
>22 byte x - version %ld
|
||||
>23 byte x .%ld
|
||||
#
|
||||
0 beshort 0x0162 MIPSEL-BE ECOFF executable
|
||||
>20 beshort 0407 (impure)
|
||||
>20 beshort 0410 (swapped)
|
||||
>20 beshort 0413 (paged)
|
||||
>8 belong >0 not stripped
|
||||
>8 belong 0 stripped
|
||||
>23 byte x - version %d
|
||||
>22 byte x .%ld
|
||||
#
|
||||
0 beshort 0x6001 MIPSEB-LE ECOFF executable
|
||||
>20 beshort 03401 (impure)
|
||||
>20 beshort 04001 (swapped)
|
||||
>20 beshort 05401 (paged)
|
||||
>8 belong >0 not stripped
|
||||
>8 belong 0 stripped
|
||||
>23 byte x - version %d
|
||||
>22 byte x .%ld
|
||||
#
|
||||
0 beshort 0x6201 MIPSEL ECOFF executable
|
||||
>20 beshort 03401 (impure)
|
||||
>20 beshort 04001 (swapped)
|
||||
>20 beshort 05401 (paged)
|
||||
>8 belong >0 not stripped
|
||||
>8 belong 0 stripped
|
||||
>23 byte x - version %ld
|
||||
>22 byte x .%ld
|
||||
#
|
||||
# MIPS 2 additions
|
||||
#
|
||||
0 beshort 0x0163 MIPSEB MIPS-II ECOFF executable
|
||||
>20 beshort 0407 (impure)
|
||||
>20 beshort 0410 (swapped)
|
||||
>20 beshort 0413 (paged)
|
||||
>8 belong >0 not stripped
|
||||
>8 belong 0 stripped
|
||||
>22 byte x - version %ld
|
||||
>23 byte x .%ld
|
||||
#
|
||||
0 beshort 0x0166 MIPSEL-BE MIPS-II ECOFF executable
|
||||
>20 beshort 0407 (impure)
|
||||
>20 beshort 0410 (swapped)
|
||||
>20 beshort 0413 (paged)
|
||||
>8 belong >0 not stripped
|
||||
>8 belong 0 stripped
|
||||
>22 byte x - version %ld
|
||||
>23 byte x .%ld
|
||||
#
|
||||
0 beshort 0x6301 MIPSEB-LE MIPS-II ECOFF executable
|
||||
>20 beshort 03401 (impure)
|
||||
>20 beshort 04001 (swapped)
|
||||
>20 beshort 05401 (paged)
|
||||
>8 belong >0 not stripped
|
||||
>8 belong 0 stripped
|
||||
>23 byte x - version %ld
|
||||
>22 byte x .%ld
|
||||
#
|
||||
0 beshort 0x6601 MIPSEL MIPS-II ECOFF executable
|
||||
>20 beshort 03401 (impure)
|
||||
>20 beshort 04001 (swapped)
|
||||
>20 beshort 05401 (paged)
|
||||
>8 belong >0 not stripped
|
||||
>8 belong 0 stripped
|
||||
>23 byte x - version %ld
|
||||
>22 byte x .%ld
|
||||
#
|
||||
# MIPS 3 additions
|
||||
#
|
||||
0 beshort 0x0140 MIPSEB MIPS-III ECOFF executable
|
||||
>20 beshort 0407 (impure)
|
||||
>20 beshort 0410 (swapped)
|
||||
>20 beshort 0413 (paged)
|
||||
>8 belong >0 not stripped
|
||||
>8 belong 0 stripped
|
||||
>22 byte x - version %ld
|
||||
>23 byte x .%ld
|
||||
#
|
||||
0 beshort 0x0142 MIPSEL-BE MIPS-III ECOFF executable
|
||||
>20 beshort 0407 (impure)
|
||||
>20 beshort 0410 (swapped)
|
||||
>20 beshort 0413 (paged)
|
||||
>8 belong >0 not stripped
|
||||
>8 belong 0 stripped
|
||||
>22 byte x - version %ld
|
||||
>23 byte x .%ld
|
||||
#
|
||||
0 beshort 0x4001 MIPSEB-LE MIPS-III ECOFF executable
|
||||
>20 beshort 03401 (impure)
|
||||
>20 beshort 04001 (swapped)
|
||||
>20 beshort 05401 (paged)
|
||||
>8 belong >0 not stripped
|
||||
>8 belong 0 stripped
|
||||
>23 byte x - version %ld
|
||||
>22 byte x .%ld
|
||||
#
|
||||
0 beshort 0x4201 MIPSEL MIPS-III ECOFF executable
|
||||
>20 beshort 03401 (impure)
|
||||
>20 beshort 04001 (swapped)
|
||||
>20 beshort 05401 (paged)
|
||||
>8 belong >0 not stripped
|
||||
>8 belong 0 stripped
|
||||
>23 byte x - version %ld
|
||||
>22 byte x .%ld
|
||||
#
|
||||
0 beshort 0x180 MIPSEB Ucode
|
||||
0 beshort 0x182 MIPSEL-BE Ucode
|
||||
# 32bit core file
|
||||
0 belong 0xdeadadb0 IRIX core dump
|
||||
>4 belong 1 of
|
||||
>16 string >\0 '%s'
|
||||
# 64bit core file
|
||||
0 belong 0xdeadad40 IRIX 64-bit core dump
|
||||
>4 belong 1 of
|
||||
>16 string >\0 '%s'
|
||||
# N32bit core file
|
||||
0 belong 0xbabec0bb IRIX N32 core dump
|
||||
>4 belong 1 of
|
||||
>16 string >\0 '%s'
|
||||
# New style crash dump file
|
||||
0 string \x43\x72\x73\x68\x44\x75\x6d\x70 IRIX vmcore dump of
|
||||
>36 string >\0 '%s'
|
||||
# Trusted IRIX info
|
||||
0 string SGIAUDIT SGI Audit file
|
||||
>8 byte x - version %d
|
||||
>9 byte x .%ld
|
||||
#
|
||||
0 string WNGZWZSC Wingz compiled script
|
||||
0 string WNGZWZSS Wingz spreadsheet
|
||||
0 string WNGZWZHP Wingz help file
|
||||
#
|
||||
0 string \#Inventor V IRIS Inventor 1.0 file
|
||||
0 string \#Inventor V2 Open Inventor 2.0 file
|
||||
# GLF is OpenGL stream encoding
|
||||
0 string glfHeadMagic(); GLF_TEXT
|
||||
4 belong 0x7d000000 GLF_BINARY_LSB_FIRST
|
||||
4 belong 0x0000007d GLF_BINARY_MSB_FIRST
|
||||
# GLS is OpenGL stream encoding; GLS is the successor of GLF
|
||||
0 string glsBeginGLS( GLS_TEXT
|
||||
4 belong 0x10000000 GLS_BINARY_LSB_FIRST
|
||||
4 belong 0x00000010 GLS_BINARY_MSB_FIRST
|
|
@ -1,7 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# mirage: file(1) magic for Mirage executables
|
||||
#
|
||||
# XXX - byte order?
|
||||
#
|
||||
0 long 31415 Mirage Assembler m.out executable
|
|
@ -1,10 +0,0 @@
|
|||
|
||||
#------------------------------------------------------------------------------
|
||||
# mkid: file(1) magic for mkid(1) databases
|
||||
#
|
||||
# ID is the binary tags database produced by mkid(1).
|
||||
#
|
||||
# XXX - byte order?
|
||||
#
|
||||
0 string \311\304 ID tags data
|
||||
>2 short >0 version %d
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue