1*b6cee71dSXin LI 2*b6cee71dSXin LI#------------------------------------------------------------------------------ 3*b6cee71dSXin LI# $File: aout,v 1.1 2013/01/09 22:37:23 christos Exp $ 4*b6cee71dSXin LI# aout: file(1) magic for a.out executable/object/etc entries that 5*b6cee71dSXin LI# handle executables on multiple platforms. 6*b6cee71dSXin LI# 7*b6cee71dSXin LI 8*b6cee71dSXin LI# 9*b6cee71dSXin LI# Little-endian 32-bit-int a.out, merged from bsdi (for BSD/OS, from 10*b6cee71dSXin LI# BSDI), netbsd, and vax (for UNIX/32V and BSD) 11*b6cee71dSXin LI# 12*b6cee71dSXin LI# XXX - is there anything we can look at to distinguish BSD/OS 386 from 13*b6cee71dSXin LI# NetBSD 386 from various VAX binaries? The BSD/OS shared library flag 14*b6cee71dSXin LI# works only for binaries using shared libraries. Grabbing the entry 15*b6cee71dSXin LI# point from the a.out header, using it to find the first code executed 16*b6cee71dSXin LI# in the program, and looking at that might help. 17*b6cee71dSXin LI# 18*b6cee71dSXin LI0 lelong 0407 a.out little-endian 32-bit executable 19*b6cee71dSXin LI>16 lelong >0 not stripped 20*b6cee71dSXin LI>32 byte 0x6a (uses BSD/OS shared libs) 21*b6cee71dSXin LI 22*b6cee71dSXin LI0 lelong 0410 a.out little-endian 32-bit pure executable 23*b6cee71dSXin LI>16 lelong >0 not stripped 24*b6cee71dSXin LI>32 byte 0x6a (uses BSD/OS shared libs) 25*b6cee71dSXin LI 26*b6cee71dSXin LI0 lelong 0413 a.out little-endian 32-bit demand paged pure executable 27*b6cee71dSXin LI>16 lelong >0 not stripped 28*b6cee71dSXin LI>32 byte 0x6a (uses BSD/OS shared libs) 29*b6cee71dSXin LI 30*b6cee71dSXin LI# 31*b6cee71dSXin LI# Big-endian 32-bit-int a.out, merged from sun (for old 68010 SunOS a.out), 32*b6cee71dSXin LI# mips (for old 68020(!) SGI a.out), and netbsd (for old big-endian a.out). 33*b6cee71dSXin LI# 34*b6cee71dSXin LI# XXX - is there anything we can look at to distinguish old SunOS 68010 35*b6cee71dSXin LI# from old 68020 IRIX from old NetBSD? Again, I guess we could look at 36*b6cee71dSXin LI# the first instruction or instructions in the program. 37*b6cee71dSXin LI# 38*b6cee71dSXin LI0 belong 0407 a.out big-endian 32-bit executable 39*b6cee71dSXin LI>16 belong >0 not stripped 40*b6cee71dSXin LI 41*b6cee71dSXin LI0 belong 0410 a.out big-endian 32-bit pure executable 42*b6cee71dSXin LI>16 belong >0 not stripped 43*b6cee71dSXin LI 44*b6cee71dSXin LI0 belong 0413 a.out big-endian 32-bit demand paged executable 45*b6cee71dSXin LI>16 belong >0 not stripped 46*b6cee71dSXin LI 47