hod is a very simple, nice little hexadecimal and octal data dumper. It is very useful when dealing with binary data. I wrote it long long time ago, because I did not like the complexities and the output format of od and such programs. I hope you will find it useful.
Suggestions, bug reports are always welcome.
hod v1.8
https://www.muquit.com/
usage: ./hod [options] <filename>
Where the options are:
-v : show version information
-h : show this help
-i : output C header file
-g : output golang byte array
-o : dump in octal
-8 : show as block of 8 bytes
-x str : convert a hex input to decimal
-d : show offsets in decimal
-s : show identical output lines
-r : reverse hod hexdump to binary
-w : reverse regular hex bytes to binary
If no filename specified, it will read from stdin
Example:
$ hod file
$ hod < file
$ cat file | hod
$ cat file | hod -
$ hod < file
$ hod -o file
$ echo "hello" | hod
$ echo -n "hello" | hod
$ hod -x 1c0
1c0 : 448
$ echo "0a 01 ff ef 0b" | hod -w > bin.bin
$ hod bin.bin | hod -r > bin_again.binThe latest version is 1.8.
Please look at ChangeLog for details.
$ hod foo.bin
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
0: 0c d6 9a aa 49 43 63 c2 d4 ce 6d 5a 75 e0 7f da ....ICc...mZu...
10: aa 9c 9a 69 5b 8d 1e 2a fd 32 34 b5 b1 2e 57 b7 ...i[..*.24...W.
20: 20 6e 41 c3 dc 90 fc 4c ef 88 d7 22 f4 77 fb 0c nA....L...`"`.w..
30: a9 fd 20 a7 b4 b5 9b 9b f3 f0 90 2c ca c9 73 ad .. ........,..s.
40: b3 da 6d 5a f7 e3 af 4d df 35 2e 7c 53 54 d7 4e ..mZ...M.5.|ST.N
50: 5d d7 74 ec ea ef b5 ff 8d 61 ef 4f 59 e2 51 50 ].t......a.OY.QP
60: 39 b8 cd e6 13 3d ee dc f1 dd 33 b6 9e 5b f1 ca 9....=....3..[..
70: 88 1a 2f b6 ea d9 2b 3b 7f c5 07 af 67 2f 5b d6 ../...+;....g/[.
80: d4 f9 69 95 6a c7 8a a0 39 2a 7e 70 fe 1b 40 f4 ..i.j...9*~p..@.
90: 06 3d 86 10 2e 00 .=....
$ hod -o foo.bin
0 1 2 3 4 5 6 7 01234567
0: 014 326 232 252 111 103 143 302 ....ICc.
10: 324 316 155 132 165 340 177 332 ..mZu...
20: 252 234 232 151 133 215 036 052 ...i[..*
30: 375 062 064 265 261 056 127 267 .24...W.
40: 040 156 101 303 334 220 374 114 nA....L
50: 357 210 327 042 364 167 373 014 ...`"`.w..
60: 251 375 040 247 264 265 233 233 .. .....
70: 363 360 220 054 312 311 163 255 ...,..s.
100: 263 332 155 132 367 343 257 115 ..mZ...M
110: 337 065 056 174 123 124 327 116 .5.|ST.N
120: 135 327 164 354 352 357 265 377 ].t.....
130: 215 141 357 117 131 342 121 120 .a.OY.QP
140: 071 270 315 346 023 075 356 334 9....=..
150: 361 335 063 266 236 133 361 312 ..3..[..
160: 210 032 057 266 352 331 053 073 ../...+;
170: 177 305 007 257 147 057 133 326 ....g/[.
200: 324 371 151 225 152 307 212 240 ..i.j...
210: 071 052 176 160 376 033 100 364 9*~p..@.
220: 006 075 206 020 056 000 006 075 .=.....=
230: 206 020 056 000 ....
$ hod -d foo.bin
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
0: 0c d6 9a aa 49 43 63 c2 d4 ce 6d 5a 75 e0 7f da ....ICc...mZu...
16: aa 9c 9a 69 5b 8d 1e 2a fd 32 34 b5 b1 2e 57 b7 ...i[..*.24...W.
32: 20 6e 41 c3 dc 90 fc 4c ef 88 d7 22 f4 77 fb 0c nA....L...`"`.w..
48: a9 fd 20 a7 b4 b5 9b 9b f3 f0 90 2c ca c9 73 ad .. ........,..s.
64: b3 da 6d 5a f7 e3 af 4d df 35 2e 7c 53 54 d7 4e ..mZ...M.5.|ST.N
80: 5d d7 74 ec ea ef b5 ff 8d 61 ef 4f 59 e2 51 50 ].t......a.OY.QP
96: 39 b8 cd e6 13 3d ee dc f1 dd 33 b6 9e 5b f1 ca 9....=....3..[..
112: 88 1a 2f b6 ea d9 2b 3b 7f c5 07 af 67 2f 5b d6 ../...+;....g/[.
128: d4 f9 69 95 6a c7 8a a0 39 2a 7e 70 fe 1b 40 f4 ..i.j...9*~p..@.
144: 06 3d 86 10 2e 00 .=....
$ hod x.db
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
0: 00 06 15 61 00 00 00 02 00 00 04 d2 00 00 10 00 ...a............
10: 00 00 00 0c 00 00 01 00 00 00 01 00 00 00 00 08 ................
20: 00 00 00 01 00 00 00 02 00 00 00 01 00 00 00 03 ................
30: 00 00 00 01 00 01 00 00 00 00 00 02 00 00 00 01 ................
40: 95 6e 7d e3 00 00 00 00 00 00 00 02 00 00 00 02 .n}.............
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
*
c0: 00 00 00 00 08 01 00 00 00 00 00 00 00 00 00 00 ................
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
*
1000: 04 00 f9 0f f8 0f ed 0f dd 0f cf 0f dd 0f ff ff ................
1010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
*
1fd0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff 27 27 ..............''
1fe0: 9b 65 b7 4b b4 fc 90 2e db 8c 11 f4 6c 67 6c 6f .e.K........lglo
1ff0: 62 61 6c 2d 73 61 6c 74 03 56 65 72 73 69 6f 6e bal-salt.Version
2000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
*
3000: fd ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
3010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
*
Here * indicates identical lines. To show identical lines use the flag -s
$ hod -i square.gif > square.h
The header file square.h will look like:
/*
** This file is created by hod 1.7 by running:
** hod -i square.gif
** on Sun May 13 14:44:25 2012
** hod is a free software available from: http://www.muquit.com/
*/
#ifndef square_gif_H
#define square_gif_H 1
const unsigned char square_gif[]=
{
0x47,0x49,0x46,0x38,0x39,0x61,0x10,0x00,0x10,0x00,0xf3,0x00,0x00,0x00,0x00,
0x00,0x10,0x0f,0x0e,0x20,0x1e,0x1b,0x30,0x2d,0x29,0x3f,0x3b,0x36,0x4f,0x4a,
0x44,0x5f,0x59,0x52,0x6f,0x68,0x5f,0x7f,0x77,0x6d,0x8f,0x86,0x7a,0x9f,0x95,
0x88,0xaf,0xa4,0x96,0xbe,0xb2,0xa3,0xce,0xc1,0xb1,0xde,0xd0,0xbe,0xee,0xdf,
0xcc,0x21,0xf9,0x04,0x00,0x00,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x00,0x10,
0x00,0x10,0x00,0x00,0x04,0x4e,0xf0,0xc9,0x49,0xeb,0x73,0x38,0xeb,0xed,0x9a,
0xff,0x60,0xd8,0x30,0x64,0x69,0x9e,0xcc,0xa2,0xae,0x6c,0xbb,0x28,0x70,0x2c,
0xcf,0x4a,0x62,0xdf,0x78,0x9e,0x20,0x7c,0xef,0xff,0x88,0x83,0x70,0x48,0x2c,
0x1e,0x0c,0xc8,0xa4,0x72,0x69,0x28,0x38,0x9f,0xd0,0x68,0x81,0x40,0xad,0x5a,
0xaf,0x84,0x81,0x76,0xcb,0xed,0x0e,0x04,0xe0,0xb0,0x78,0x2c,0x08,0x98,0xcf,
0xe8,0x74,0x00,0xc0,0x6e,0xbb,0xdf,0x80,0x08,0x00,0x3b,
};
const unsigned int square_gif_len=161;
#endif /* square_gif_H */
$ hod -g icon.png > icon.go
The icon.go file will look like:
/
// This file is created by hod 1.8 by running:
// hod -g icon.png
// hod is a free software available from: https://www.muquit.com/
//
package Icon
var Data []byte = []byte {
0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,
0x52,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x04,0x03,0x00,0x00,0x00,0xed,
0xdd,0xe2,0x52,0x00,0x00,0x00,0x20,0x63,0x48,0x52,0x4d,0x00,0x00,0x7a,0x26,
0x00,0x00,0x80,0x84,0x00,0x00,0xfa,0x00,0x00,0x00,0x80,0xe8,0x00,0x00,0x75,
0x30,0x00,0x00,0xea,0x60,0x00,0x00,0x3a,0x98,0x00,0x00,0x17,0x70,0x9c,0xba,
0x51,0x3c,0x00,0x00,0x00,0x30,0x50,0x4c,0x54,0x45,0xee,0xdf,0xcc,0xde,0xd0,
0xbe,0xce,0xc1,0xb1,0xbe,0xb2,0xa3,0xaf,0xa4,0x96,0x9f,0x95,0x88,0x8f,0x86,
0x7a,0x7f,0x77,0x6d,0x6f,0x68,0x5f,0x5f,0x59,0x52,0x4f,0x4a,0x44,0x3f,0x3b,
0x36,0x30,0x2d,0x29,0x20,0x1e,0x1b,0x10,0x0f,0x0e,0x00,0x00,0x00,0xb6,0x15,
0xcf,0x2d,0x00,0x00,0x00,0x01,0x62,0x4b,0x47,0x44,0x0f,0x18,0xba,0x00,0xd9,
0x00,0x00,0x00,0x07,0x74,0x49,0x4d,0x45,0x07,0xe9,0x09,0x0f,0x15,0x1b,0x0a,
0xfb,0xe2,0xd1,0xd2,0x00,0x00,0x00,0x3b,0x49,0x44,0x41,0x54,0x08,0xd7,0x35,
0xc1,0xc1,0x00,0x00,0x21,0x00,0x00,0xc1,0x55,0x48,0x21,0x85,0x14,0x52,0x48,
0x21,0x85,0x14,0x52,0x48,0x21,0x85,0x53,0x38,0x85,0x14,0x52,0xa8,0xcf,0x36,
0x03,0x4f,0x10,0x51,0x24,0x91,0x45,0x11,0x55,0x34,0xd1,0xc5,0x10,0x53,0x7c,
0xe2,0x17,0x4b,0x6c,0x71,0x74,0x01,0x95,0x95,0x3f,0xc1,0x40,0x15,0x38,0x32,
0x00,0x00,0x00,0x25,0x74,0x45,0x58,0x74,0x64,0x61,0x74,0x65,0x3a,0x63,0x72,
0x65,0x61,0x74,0x65,0x00,0x32,0x30,0x32,0x35,0x2d,0x30,0x39,0x2d,0x31,0x35,
0x54,0x32,0x31,0x3a,0x30,0x36,0x3a,0x33,0x33,0x2b,0x30,0x30,0x3a,0x30,0x30,
0xea,0x28,0x6a,0xab,0x00,0x00,0x00,0x25,0x74,0x45,0x58,0x74,0x64,0x61,0x74,
0x65,0x3a,0x6d,0x6f,0x64,0x69,0x66,0x79,0x00,0x32,0x30,0x32,0x35,0x2d,0x30,
0x34,0x2d,0x31,0x35,0x54,0x32,0x31,0x3a,0x35,0x37,0x3a,0x31,0x39,0x2b,0x30,
0x30,0x3a,0x30,0x30,0xd4,0x9e,0xdd,0x67,0x00,0x00,0x00,0x28,0x74,0x45,0x58,
0x74,0x64,0x61,0x74,0x65,0x3a,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,
0x00,0x32,0x30,0x32,0x35,0x2d,0x30,0x39,0x2d,0x31,0x35,0x54,0x32,0x31,0x3a,
0x32,0x37,0x3a,0x31,0x30,0x2b,0x30,0x30,0x3a,0x30,0x30,0x08,0x03,0x3c,0xd7,
0x00,0x00,0x00,0x00,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
}
Look at icon_example/ directory for an example how a 16.x16 PNG file is converted to Go byte array to use as an icon for the systray.
Pre-compiled binaries for Windows and Ubuntu are available from Releases page
A pre-built Debian package is available. To install the package, type
sudo dpkg -i hod_1.8-ubuntu_amd64.deb
To remove the package, type:
sudo dpkg -r hod
Go to the source directory and type:
$ sh ./configure
$ make clean
$ make
# make install
or
$ sudo make install
This time I used MING64 (Sep-17-2025) to compile. To compile, just like Linux/Mac:
./configure
makeA compiled binary for MS Windows is already supplied. However, if you need to modify something or want to compile it yourself, you will need MS Visual Studio (I used MS Visual Studio 10, freely available from Microsoft). To compile, open a command shell and type:
c:\> nmake -f Makefile.win clean
c:\> nmake -f Makefile.win
TOC is created by https://github.com/muquit/markdown-toc-go on Sep-17-2025