| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 | 
#------------------------------------------------------------------------------# $File: gnu,v 1.21 2019/04/19 00:42:27 christos Exp $# gnu:  file(1) magic for various GNU tools## GNU nlsutils message catalog file format## GNU message catalog (.mo and .gmo files)# Update: Joerg Jenderek# URL: https://www.gnu.org/software/gettext/manual/html_node/MO-Files.html# Reference: ftp://ftp.gnu.org/pub/gnu/gettext/gettext-0.19.8.tar.gz/#	gettext-0.19.8.1/gettext-runtime/intl/gmo.h# Note: maybe call it like "GNU translation gettext machine object"0	string		\336\22\4\225	GNU message catalog (little endian),#0	ulelong	0x950412DE		GNU-format message catalog data# TODO: write lines in such a way that code can also be called for big endian variant#>0	use		gettext-object#0	name		gettext-object>4	ulelong		x		revision!:mime	application/x-gettext-translation# mo extension is also used for Easeus Partition Master PE32 executable module# like ConvertFatToNTFS.mo!:ext	gmo/mo# only found three revision combinations 0.0 0.1 1.1 as unsigned 32-bit# major revision>4	ulelong/0xFFff	x		%u.# minor revision>4	ulelong&0x0000FFff	x	\b%u>>8	ulelong		x		\b, %u message# plural s>>8	ulelong		>1		\bs# size of hashing table#>20	ulelong		x		\b, %u hash#>20	ulelong		>1		\bes#>24	ulelong		x		at 0x%x# for revsion x.0 offset of table with originals is 1Ch if directly after header>4	ulelong&0x0000FFff	=0>>12	ulelong		!0x1C		\b, at 0x%x string table# but for x.1 table offset i found is 30h. That means directly after bigger header>4	ulelong&0x0000FFff	>0>>12	ulelong		!0x30		\b, at 0x%x string table# The following variables are only used in .mo files with minor revision >= 1# number of system dependent segments#>>28	ulelong		x		\b, %u segment#>>28	ulelong		>1		\bs# offset of table describing system dependent segments#>>32	ulelong		x		at 0x%x# number of system dependent strings pairs>>36	ulelong		x		\b, %u sysdep message>>36	ulelong		>1		\bs# offset of table with start offsets of original sysdep strings#>>40	ulelong		x		\b, at 0x%x sysdep strings# offset of table with start offsets of translated sysdep strings#>>44	ulelong		x		\b, at 0x%x sysdep translations# >>(44.l)	ulelong	x		0x%x chars# >>>&0		ulelong	x		at 0x%x# >>>>(&-4)	string	x		"%s"# string table after big header#>>48	ubequad		x		\b, string table 0x%llx## 0th string length seems to be always 0#>(12.l)	ulelong	x		\b, %u chars#>>&0		ulelong	x		at 0x%x# if 1st string length positiv inspect offset and string#>(12.l+8)	ulelong	>0		\b, %u chars#>>&0		ulelong	x		at 0x%x# if 2nd string length positiv inspect offset and string# >(12.l+16)	ulelong	>0		\b, %u chars# >>&0		ulelong	x		at 0x%x# skip newline byte#>>>(&-4)	ubyte	=0x0A#>>>>&0		string	x		"%s"#>>>(&-4)	ubyte	!0x0A#>>>>&-1		string	x		'%s'# offset of table with translation strings#>16	ulelong		x		\b, at 0x%x translation table# check translation 0 length and offset>(16.l)		ulelong	>0>>&0		ulelong	x# translation 0 seems to be often Project-Id with name and version>>>(&-4)	string	x		\b, %s# trans. 1 with bytes >= 1 unlike icoutils-0.31.0\po\en@boldquot.gmo with 1 NL>(16.l+8)	ulelong	>1>>&0		ulelong	x>>>(&-4)	ubyte	!0x0A>>>>&-1		string	x		'%s'# 1 New Line like in tar-1.29\po\de.gmo>>>(&-4)	ubyte	=0x0A>>>>&0		ubyte	!0x0A>>>>>&-1	string	x		'%s'# 2nd New Line like in parted-3.1\po\de.gmo>>>>&0		ubyte	=0x0A>>>>>&0		string	x		'%s'0	string		\225\4\22\336	GNU message catalog (big endian),#0	ubelong	0x950412DE		GNU-format message catalog data!:mime	application/x-gettext-translation!:ext	gmo/mo# TODO: for big endian use same code as for little endian#>0	use		\^gettext-object# DEBUG code#>16	ubelong		x		\b, at 0x%x translation table#>(16.L)		ubelong	x		0x%x chars#>>&0		ubelong	x		at 0x%x# unexpected value HERE!#>>>(&-4)	ubequad	x		0x%llx#>4	beshort		x		revision %d.>6	beshort		>0		\b%d,>>8	belong		x		%d messages,>>36	belong		x		%d sysdep messages>6	beshort		=0		\b%d,>>8	belong		x		%d messages# GnuPG# The format is very similar to pgp0	string          \001gpg                 GPG key trust database>4	byte            x                       version %d# Note: magic.mime had 0x8501 for the next line instead of 0x85020	beshort		0x8502			GPG encrypted data!:mime	text/PGP # encoding: data# Update: Joerg Jenderek# Note:	PGP and GPG use same data structure.#	So recognition is now done by ./pgp with start test for byte 0x99# This magic is not particularly good, as the keyrings don't have true# magic. Nevertheless, it covers many keyrings.# 0	ubeshort-0x9901	<2# >3	byte		4# >>4	bedate		x		GPG key public ring, created %s# !:mime application/x-gnupg-keyring# Symmetric encryption0	leshort		0x0d8c>4	leshort		0x0203>>2	leshort		0x0204		GPG symmetrically encrypted data (3DES cipher)>>2	leshort		0x0304		GPG symmetrically encrypted data (CAST5 cipher)>>2	leshort		0x0404		GPG symmetrically encrypted data (BLOWFISH cipher)>>2	leshort		0x0704		GPG symmetrically encrypted data (AES cipher)>>2	leshort		0x0804		GPG symmetrically encrypted data (AES192 cipher)>>2	leshort		0x0904		GPG symmetrically encrypted data (AES256 cipher)>>2	leshort		0x0a04		GPG symmetrically encrypted data (TWOFISH cipher)>>2	leshort		0x0b04		GPG symmetrically encrypted data (CAMELLIA128 cipher)>>2	leshort		0x0c04		GPG symmetrically encrypted data (CAMELLIA192 cipher)>>2	leshort		0x0d04		GPG symmetrically encrypted data (CAMELLIA256 cipher)# GnuPG Keybox file# <https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob;f=kbx/keybox-blob.c;hb=HEAD># From: Philipp Hahn <hahn@univention.de>0	belong	32>4	byte	1>>8	string	KBXf	GPG keybox database>>>5	byte	1	version %d>>>16	bedate	x	\b, created-at %s>>>20	bedate	x	\b, last-maintained %s# Gnumeric spreadsheet# This entry is only semi-helpful, as Gnumeric compresses its files, so# they will ordinarily reported as "compressed", but at least -z helps39      string          =<gmr:Workbook           Gnumeric spreadsheet# From: James Youngman <jay@gnu.org># gnu find magic0	string	\0LOCATE	GNU findutils locate database data>7	string	>\0		\b, format %s>7	string	02		\b (frcode)# Files produced by GNU gettext# gettext message catalogue0	search/1024	\nmsgid>&0	search/1024	\nmsgstr	GNU gettext message catalogue text!:strength +100!:mime text/x-po
 |