criando um hexdump simples

atualmente eu estou usando o tempo livre que tenho para programar na linguagem C, com o objetivo de aprender como as coisas funcionam por baixo dos panos.
uma das áreas que me interessa bastante é a exploração de binários e a engenharia reversa. durante esse processo, eu acabei conhecendo uma ferramenta bastante comum em sistemas unix: o hexdump.

mas como podemos visualizar os bytes reais do arquivo? analisando cada byte individualmente e sua representação em ASCII. para isso, vou usar o hexdump original com a flag -C, já que o objetivo é comparar a saída da minha implementação com a do programa real.

a ideia é chegar o mais próximo possível do comportamento original enquanto eu aprendo melhor como esse tipo de utilitário funciona.

hexdump -C output.bin 
00000000 01 02 03 04 05 |.....| 
00000005