Dieses Programm bietet eine einfache Möglichkeit, die verschiedenen Regionen einer binären Datei zu visualisieren.
Dies sind einige Referenzen, die dieses Projekt inspiriert haben:
Wenn Sie an professionellen Ansätzen interessiert sind, lesen Sie die folgenden Links:
Das Programm hängt von libpng zum Exportieren des Bildes ab. Installieren Sie es bei Ihrem Paketmanager.
# Arch-based distros
pacman -S libpng
# Gentoo
emerge media-libs/libpngSobald alle Abhängigkeiten installiert sind, erstellen Sie das Programm.
git clone https://github.com/8dcc/bin-graph
cd bin-graph
makeWenn Sie es in Ihrem System installieren möchten, führen Sie den folgenden Befehl aus.
sudo make install Es gibt verschiedene Grafikmodi, die bestimmen, wie die Eingangsbinärdatei im Ausgangsbild dargestellt wird. Die vollständige Modusliste mit ihren Beschreibungen finden Sie mit dem help -Befehl des Programms.
bin-graph --help
# Usage:
# ./bin-graph [OPTION...] INPUT OUTPUT.png
#
# ... Dieses Projekt enthält auch ein Bin-Graph-Abschnitt.SH-Skript. Es verwendet readelf und grep um den Offset und die Größe der angegebenen Region zu finden, und die als die --offset-* Argumente für bin-graph . Zusätzliche Optionen nach dem Abschnittsnamen werden an bin-graph übergeben.
./bin-graph-section.sh SECTION [OPTION...] INPUT OUTPUT.png
# ...Ich habe versucht, jeden Teil des Programms so modular und unabhängig wie möglich zu gestalten, um mehr Wartbarkeit und eine leichtere Expansion zu erhalten.
Dies ist der grundlegende Prozess, um ein Bild aus einem Binärer zu erzeugen.
read_file -Funktion gelesen.Image umgewandelt, die nur eine Reihe von RGB Color ist. Der Programmmodus (der möglicherweise mit dem Parameter --mode überschrieben wurde) bestimmt, welche image_* -Funktion verwendet wird. Diese image_* -Funktionen sind in Image.c definiert. Weitere Informationen zu den verfügbaren Modi finden Sie in Gebrauch und Modi.Image wird in eine PNG -Datei mit der in Image.c definierten image2png -Funktion konvertiert../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