Эта программа предоставляет простой способ визуализации различных областей двоичного файла.
Это некоторые ссылки, которые вдохновили этот проект:
Если вы заинтересованы в более профессиональных подходах, ознакомьтесь с следующими ссылками:
Программа зависит от libpng для экспорта изображения. Установите его из менеджера пакета.
# Arch-based distros
pacman -S libpng
# Gentoo
emerge media-libs/libpngКак только все зависимости будут установлены, составьте программу.
git clone https://github.com/8dcc/bin-graph
cd bin-graph
makeЕсли вы хотите установить его в свою систему, запустите следующую команду.
sudo make install Существуют различные режимы графика, которые определяют, как входной двоичный файл представлен в выходном изображении. Полный список режимов с их описаниями можно найти с помощью команды help программы.
bin-graph --help
# Usage:
# ./bin-graph [OPTION...] INPUT OUTPUT.png
#
# ... Этот проект также включает в себя сценарий бин-графа .sh. Он использует readelf и grep чтобы найти смещение и размер указанной области, и использует это в качестве аргументов --offset-* для bin-graph . Дополнительные параметры после того, как имя разделения будет передано в bin-graph .
./bin-graph-section.sh SECTION [OPTION...] INPUT OUTPUT.png
# ...Я старался сделать каждую часть программы максимально модульной и независимой, для более широкой обстоятельств и для более легкого расширения.
Это основной процесс генерации изображения из двоичного файла.
read_file , определенную в read_file.c.Image , которая представляет собой всего лишь массив Color структур RGB, а также его размеры. Режим программы (который мог быть перезаписан параметром --mode ) определяет, какая функция image_* используется. Эти функции image_* определены в image.c. Для получения дополнительной информации о доступных режимах см. Использование и режимы.Image преобразуется в файл PNG с помощью функции image2png , определенной в image.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