Program ini menyediakan cara sederhana untuk memvisualisasikan berbagai wilayah file biner.
Ini adalah beberapa referensi yang menginspirasi proyek ini:
Jika Anda tertarik pada pendekatan yang lebih profesional, lihat tautan berikut:
Program ini tergantung pada libpng untuk mengekspor gambar. Instal dari manajer paket Anda.
# Arch-based distros
pacman -S libpng
# Gentoo
emerge media-libs/libpngSetelah semua dependensi diinstal, kompilasi program.
git clone https://github.com/8dcc/bin-graph
cd bin-graph
makeJika Anda ingin menginstalnya di sistem Anda, jalankan perintah berikut.
sudo make install Ada berbagai mode grafik yang berbeda yang menentukan bagaimana biner input diwakili dalam gambar output. Daftar mode lengkap dengan deskripsi mereka dapat ditemukan dengan perintah help program.
bin-graph --help
# Usage:
# ./bin-graph [OPTION...] INPUT OUTPUT.png
#
# ... Proyek ini juga mencakup skrip Bin-Graph-section.sh. Ia menggunakan readelf dan grep untuk menemukan offset dan ukuran wilayah yang ditentukan, dan menggunakannya sebagai argumen --offset-* untuk bin-graph . Opsi tambahan setelah nama bagian akan diteruskan ke bin-graph .
./bin-graph-section.sh SECTION [OPTION...] INPUT OUTPUT.png
# ...Saya mencoba membuat setiap bagian dari program se -modular dan mandiri mungkin, untuk pemeliharaan yang lebih banyak dan untuk ekspansi yang lebih mudah.
Ini adalah proses dasar untuk menghasilkan gambar dari biner.
read_file , yang didefinisikan dalam read_file.c.Image , yang hanya merupakan array struktur Color RGB, bersama dengan dimensinya. Mode program (yang mungkin telah ditimpa dengan parameter --mode ) menentukan fungsi image_* apa yang digunakan. Fungsi image_* ini didefinisikan dalam Image.c. Untuk informasi lebih lanjut tentang mode yang tersedia, lihat Penggunaan dan Mode.Image dikonversi menjadi file PNG dengan fungsi image2png , didefinisikan dalam 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