Este programa fornece uma maneira simples de visualizar as diferentes regiões de um arquivo binário.
Estas são algumas referências que inspiraram este projeto:
Se você estiver interessado em abordagens mais profissionais, confira os seguintes links:
O programa depende do libpng para exportar a imagem. Instale -o no seu gerenciador de pacotes.
# Arch-based distros
pacman -S libpng
# Gentoo
emerge media-libs/libpngDepois que todas as dependências forem instaladas, compila o programa.
git clone https://github.com/8dcc/bin-graph
cd bin-graph
makeSe você deseja instalá -lo no seu sistema, execute o seguinte comando.
sudo make install Existem vários modos de gráfico diferentes que determinam como o binário de entrada é representado na imagem de saída. A lista completa do modo com suas descrições pode ser encontrada com o comando help do programa.
bin-graph --help
# Usage:
# ./bin-graph [OPTION...] INPUT OUTPUT.png
#
# ... Este projeto também inclui um script bin-graph-seção.sh. Ele usa readelf e grep para encontrar o deslocamento e o tamanho da região especificada e o usa como os argumentos- --offset-* para os argumentos bin-graph . Opções adicionais após o nome da seção será passado para o bin-graph .
./bin-graph-section.sh SECTION [OPTION...] INPUT OUTPUT.png
# ...Tentei tornar cada parte do programa o mais modular e independente possível, para obter mais capacidade de manutenção e para mais fácil expansão.
Este é o processo básico para gerar uma imagem a partir de um binário.
read_file , definida em read_file.c.Image , que é apenas uma matriz de estruturas Color RGB, juntamente com suas dimensões. O modo de programa (que pode ter sido substituído pelo parâmetro --mode ) determina qual função image_* é usada. Essas funções image_* são definidas em imagem.c. Para obter mais informações sobre os modos disponíveis, consulte o uso e os modos.Image é convertida em um arquivo PNG com a função image2png , definida em imagem.c../bin-graph --mode grayscale bin-graph examples/grayscale.png
./bin-graph --mode ascii bin-graph examples/ascii.png
./bin-graph --mode entropy --transform-squares 16 bin-graph examples/entropy-squared.png
# Only the .text section of the ELF file
./bin-graph-section.sh .text --mode histogram bin-graph examples/histogram.png
# Only the .rodata section of the ELF file
./bin-graph-section.sh .rodata --mode bigrams bin-graph examples/rodata-bigrams.png
./bin-graph --mode dotplot --zoom 1 --offset-start 5000 --offset-end 5500 input.wav examples/dotplot.png