1 stable release

3.1.0 Oct 31, 2024

#531 in Compression

Download history 306/week @ 2025-09-28 325/week @ 2025-10-05 407/week @ 2025-10-12 507/week @ 2025-10-19 393/week @ 2025-10-26 427/week @ 2025-11-02 428/week @ 2025-11-09 395/week @ 2025-11-16 382/week @ 2025-11-23 300/week @ 2025-11-30 336/week @ 2025-12-07 378/week @ 2025-12-14 303/week @ 2025-12-21 214/week @ 2025-12-28 341/week @ 2026-01-04 334/week @ 2026-01-11

1,232 downloads per month
Used in injected-image-checker

MIT license

645KB
12K SLoC

Rust library for identifying, and optionally extracting, files embedded inside other files.

Example

use binwalk::Binwalk;

// Create a new Binwalk instance
let binwalker = Binwalk::new();

// Read in the data you want to analyze
let file_data = std::fs::read("/tmp/firmware.bin").expect("Failed to read from file");

// Scan the file data and print the results
for result in binwalker.scan(&file_data) {
   println!("{:#?}", result);
}

binwalk

A Rust implementation of the Binwalk firmware analysis tool.

System Requirements

Building requires the following system packages:

build-essential libfontconfig1-dev liblzma-dev

Example

use binwalk::Binwalk;

// Create a new Binwalk instance
let binwalker = Binwalk::new();

// Read in the data to analyze
let file_data = std::fs::read("/tmp/firmware.bin").expect("Failed to read from file");

// Scan the file data and print the results
for result in binwalker.scan(&file_data) {
    println!("{:#?}", result);
}

Dependencies

~11–24MB
~292K SLoC