-
Notifications
You must be signed in to change notification settings - Fork 16
/
od_hexdump_hd.txt
193 lines (175 loc) · 11.1 KB
/
od_hexdump_hd.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
OD_HEXDUMP_HD
od [FILE]... #Imprime la concaténation sous forme octale (par défaut)
#De manière plus précise, imprime, pour chaque NB_OCTETS
#octets (par défaut 16) :
# - l'offset (en octal par défaut) du premier octet de
# la ligne par rapport au début de la concaténation
# de FILE...
# - les octets convertis en TYPE (octal par défaut),
# par groupe de WORD_SIZE octets (par défaut 2)
#Attention :
# - l'endianness est respectée, groupe d'octets par
# groupe d'octets. Ainsi, en little-endian, les
# octets sont inversés
#
#Les groupes de lignes doublons sont remplacées par *
#Dans les options, tout NOMBRE peut être écrit sous
#forme 0xHEXA et sous forme human-readable size
#
#FILE peut être - pour désigner stdin
#FILE est stdin par défaut : l'input peut donc être
#redirigé.
#
od FILE [+]NOMBRE #Comme od -j NOMBRE FILE, mais n'accepte que les options
# -a, -b, -c, etc. NOMBRE est octal, à moins d'être sous
#la forme 0xNOMBRE
#Un seul FILE peut être spécifié
od --traditional FILE #Même chose, mais :
[+]NOMBRE [[+]LABEL] # - accepte toutes les options
# - si spécifié, ajoute une colonne avec un offset
# "virtuel" commençant à LABEL
-t CHAR[NOMBRE] #TYPE devient CHAR et WORD_SIZE devient NOMBRE (4 si non
[CHAR[NOMBRE]]... #spécifié) :
# - Si plusieurs types sont spécifiés, les octets sont
# répétés sur chaque ligne pour chaque type spécifié.
# - Un z à la fin de CHAR[NOMBRE] imprime les
# caractères ASCII imprimables des octets de chaque
# ligne, à la fin de cette ligne
#CHAR peut être :
# - o : octal
# - x : hexadécimal
# - c : printable character, séquence d'échappement
# backslash ou octale.
# - a : printable character ou string représentant un
# control character. Les octets au-delà du range
# ASCII sont ramenés sur ce range en déduisant
# 0x80.
# - u : décimal
# - d : décimal signé (négatif au-dessus de 0x80)
# - f : floating point
#NOMBRE peut-être :
# - 1, 2, 4 ou 8
# - C pour 1 (taille d'un char)
# - S pour 2 (taille d'un short)
# - I pour 4 (taille d'un int)
# - L pour 8 (taille d'un long)
#Cependant :
# - f n'accepte que 4, 8 et F (4, taille d'un float)
# et L (8, taille d'un double) (8 par défaut)
# - a et c n'acceptent rien
-b #Comme -t o1
-o #Comme -t o2
-x #Comme -t x2
-c #comme -t c
-a #Comme -t a
-d #Comme -t u2
-s #Comme -t d2
-i #Comme -t dI
-l #Comme -t dL
-f #Comme -t fF
-j NOMBRE #Ne commence l'impression qu'à partir de l'octet numéro
--skip-bytes=NOMBRE #NOMBRE
-N NOMBRE
--read-bytes=NOMBRE #N'imprime que les NOMBRE premiers octets
-A CHAR #En fonction de CHAR, affiche l'offset sous forme :
--address-radix=CHAR # - o : octal (par défaut)
# - x : hexadécimal
# - d : décimal
# - n : pas d'offset
-wNOMBRE
--width=NOMBRE #NB_OCTETS devient NOMBRE
-v
--output-duplicates #Ne remplace pas les groupes de lignes doublons par *
-S NOMBRE #Plutôt que d'imprimer les octets, imprime les strings
--strings=NOMBRE #de FILE... avec l'offset de ces strings.
#Une string est définie comme une suite de minimum
#NOMBRE caractères imprimables (dont espace) terminée
#par un character null
#Incompatible avec -t
DECALAGE DES CHIFFRES # - un chiffre octal correspond à 3 bits. Ainsi, un
OCTAUX ==> # groupe de deux octets et deux groupes d'un octet
# n'afficheront pas le même résultat :
# - groupe de deux octets :
# | A BCD EFG HIJ KLM NOP | (six chiffres octaux à
# partir de ces 16 bits)
# - deux groupes d'un octet :
# | AB CDE FGH | IJ KLM NOP | (même chose, mais
# avec décalage)
# A cela s'ajoute l'endianness :
# - groupe de deux octets :
# | I JKL MNO PAB CDE FGH |
# - deux groupes d'un octets :
# | AB CDE FGH | IJ KLM NOP |
# Le problème est le même pour les autre types, sauf
# hexadécimal car 4 est un multiple de 8.
EXEMPLE D'UTILISATION #od peut être utilisé par exemple pour convertir des
==> #octets aléatoires en nombre :
# - od /dev/urandom -N4 -tu -An
hexdump FILE... #Une sorte d'od hexadécimal.
#Equivaut par défaut à od -Ax -tx2.
#Les options sont toutefois différentes :
-s NOMBRE #Ne commence l'impression qu'à partir de l'octet numéro
#NOMBRE (décimal) (0XNOMBRE possible) (b, k et m
#possibles comme suffixes)
-n NOMBRE #N'imprime que les NOMBRE premiers octets.
-v #Ne remplace pas les groupes de lignes doublons par *
-e 'FORMAT' #Interprète l'impression de FILE... en fonction de
#FORMAT. FORMAT est une suite de "FORM" :
# - entourés chacun de doubles guillemets
# - séparés les uns des autres par des espaces
# - précédé de [LOOP][/WORD_SIZE]. Par défaut 1 pour
# LOOP et, pour WORD_SIZE, :
# - 1 pour %_c, %_p, %_u et %c (seul valeur
# possible)
# - 4 pour %d, %i, %o, %u et %x (WORD_SIZE doit
# être égal à 1, 2 ou 4)
# - 8 pour %f, %e, %E, %g et %G (WORD_SIZE doit
# être égal à 4 ou 8)
#FORMAT est répété jusqu'à fin de la lecture de FILE...
#Chaque %d, %x, etc. fait progresser la lecture de FILE
# - FORM est une string de format printf, sauf que :
# - * est impossible
# - WORD_SIZE ou WIDTH est obligatoire pour %s
# - %h, %l, %n, %p et %q sont impossibles
# - les séquences d'échappement backslash sont
# possibles, mais \c, \e, \xNN, \NNN sont
# impossibles, et \r écrase les caractères
# précédents
# - des séquences additionnelles sont possibles :
# - %_a[dox] imprime l'offset de l'octet
# courant en décimal (d), octal (o) ou hexa
# (x)
# - %_A[dox] imprime cet offset, non pas pour
# chaque FORMAT, mais une seule fois, à la
# fin de hexdump. Sa lecture itère FORMAT
# sans continuer la suite de FORMAT
# - %_c imprime le caractère courant, et
# remplace les caractères non imprimables par
# des séquences d'échappement ou des �
# - %_p : même chose, mais utilise . à la place
# des séquences d'échappement et des �
# - %_u : même chose, mais utilise des
# séquences hexa ou des strings à la place
# des � et des séquences d'échappement
# - LOOP indique le nombre de fois que "FORM" doit être
# répété avant de passer au "FORM" suivant
# - WORD_SIZE indique le nombre d'octets pris par %d,
# %x, etc.
#Ainsi, le format LOOP/WORD_SIZE "FORM1" "FORM2" permet
#d'imprimer LOOP words de WORD_SIZE octets par ligne,
#tel que défini par "FORM1", chaque ligne étant terminée
#par "FORM2"
#Exemple pour imiter l'option -x :
# - -e '"%07_ax " 8/2 "%04x " "\n"'
-f FICHIER #Interprète FILE en fonction des FORMAT (sans les
#guillemets simples) concaténés contenus, ligne à ligne
#(batch mode) dans FICHIER
-b #Comme od -Ax -to1 -w16
-o #Comme od -Ax -to2 -w8
-C #Comme od -Ax -tx1z -w16
-x #Comme od -Ax -tx2 -w8
-c #Comme od -Ax -tc -w16
-d #Comme od -Ax -tu2 -w8
hd FILE... #Equivaut à hexdump -C FILE...