Subject: bin/1719: freebsd magic
To: None <gnats-bugs@gnats.netbsd.org>
From: Tom Pavel <tom@Bozon.Stanford.EDU>
List: netbsd-bugs
Date: 11/02/1995 23:20:17
>Number: 1719
>Category: bin
>Synopsis: add FreeBSD executables to /etc/magic
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: bin-bug-people (Utility Bug People)
>State: open
>Class: change-request
>Submitter-Id: net
>Arrival-Date: Fri Nov 3 02:35:01 1995
>Last-Modified:
>Originator: Tom Pavel
>Organization:
>Release: NetBSD-current(1.1_Alpha) Oct 27 1995
>Environment:
System: NetBSD bozon 1.1_ALPHA NetBSD 1.1_ALPHA (BOZON) #54: Wed Oct 25 23:16:38 PDT 1995 tom@bozon:/usr/src/sys/arch/i386/compile/BOZON i386
>Description:
Now that we have COMPAT_FREEBSD, we ought to be able to
recognize their exectutables...
>How-To-Repeat:
>Fix:
Here is the file /usr/src/usr.bin/file/magdir/freebsd that I
grabbed from FreeBSD-current. I commented out some things
that I thought were dicey (but I left the little-endian
NMAGIC, because they currently say "PDP-11 pure executable).
People more expert may have better opinions... In any event,
we ought to be able to recognize the standard FreeBSD
exectutables, which are just little-endian QMAGIC a.out
format with a machine id.
-------------------------
# the following are for 386BSD/FreeBSD
0 lelong 0410 pure executable
#0 lelong 0413 demand paged executable
0 lelong&077777777 041400314 FreeBSD/i386 demand paged
>Audit-Trail:
>Unformatted:
>3 byte &0x80
>>20 lelong <4096 shared library
>>20 lelong =4096 dynamically linked executable
>>20 lelong >4096 dynamically linked executable
>3 byte ^0x80 executable
>16 lelong >0 not stripped
# This covers object files, and is better than "PDP-11 executable"
#0 lelong 000000407 impure format
#>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 i386 a.out core file
#>1047 string >\0 from "%s"
-------------------------
Tom Pavel
Stanford Linear Accelerator Center
pavel@slac.stanford.edu