Analysing and extracting firmware using Binwalk 3.1.0 in 2025

Anindya Sankar Roy
3 min readAug 30, 2023

--

Hey there, fellow explorers! Ready to uncover the secrets of firmware analysis with the latest Binwalk 3.1.0? This guide will walk you through its capabilities with practical scenarios to make your learning hands-on. Whether you’re an information security researcher, programmer, or enthusiast, Binwalk will empower you to analyze, extract, and understand firmware binaries. Let’s dive in! 🚀⚡

What is Binwalk?

Binwalk 3.1.0 is a powerful open-source tool used for analyzing and extracting data from binary files, specifically firmware images. Built for information security professionals and reverse engineers, Binwalk identifies embedded files, compressions, and potential encryption within binary data.

What makes this version exciting?

  • Rewritten in Rust for better performance and reduced false positives.
  • Improved file extraction capabilities and support for modern compression methods.
  • Enhanced support for NTFS, APFS, and other file systems.

What Can You Do with Binwalk 3.1.0?

Let’s explore its core functionalities with detailed technical insights and scenarios:

1. Signature Scanning

Binwalk identifies embedded files, headers, and known data types automatically by matching against a database of file signatures.

Technical Insight

Binwalk’s magic signature database (/etc/binwalk/magic) contains file signature definitions. It scans binary files for matching patterns and offsets to identify embedded data.

Scenario

You’ve downloaded a firmware update for a device and want to determine if it contains recognizable components, such as images or configuration files.

Example Command

binwalk firmware.bin

Sample Output

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 PNG image, 1920 x 1080, 8-bit/color RGB
20480 0x5000 Zlib compressed data

2. Entropy Analysis

Entropy analysis helps detect encrypted or compressed regions in binaries by measuring randomness in data.

Technical Insight

Compressed and encrypted data exhibit high entropy, while plaintext or structured data (e.g., ASCII text) exhibits lower entropy.

Scenario

You suspect a firmware binary contains encrypted sections and want to locate them for further analysis.

Example Command

binwalk --entropy firmware.bin

What You’ll See

Binwalk outputs entropy scores for different file regions. Regions with high entropy suggest compression or encryption.

3. File Extraction

Binwalk extracts embedded files automatically or recursively using extractors defined in its configuration.

Technical Insight

The default extraction rules (extract.conf) tell Binwalk how to handle specific file types (e.g., gzip, tar). Recursive extraction applies these rules to extracted data.

Scenario

You need to extract all files embedded in a firmware image for inspection, including scripts, images, and archives.

Example Command

binwalk --extract firmware.bin

Recursive Extraction

binwalk --extract --matryoshka firmware.bin

4. Firmware Structure Analysis

Analyze firmware structure for file systems, compression methods, and architectures.

Technical Insight

Binwalk identifies file system offsets, compression headers, and architectural details to help reverse engineers dissect firmware.

Scenario

You’re reverse-engineering a firmware binary to understand its file system and compression.

Example Command

binwalk --extract --matryoshka firmware.bin

Complementary Tools

  • SquashFS Tools: For mounting SquashFS file systems extracted by Binwalk.
  • JFFS2 Utilities: For inspecting JFFS2 file systems.
  • unsquashfs: To directly extract SquashFS images.

5. Custom Scanning with Signatures

Define custom rules to detect proprietary or unknown file types by adding them to Binwalk’s signature database.

Technical Insight

Custom signatures are defined in /etc/binwalk/magic using the file utility syntax. Each entry specifies a pattern, offset, and description of the data.

Scenario

You’re analyzing a proprietary firmware file and need to look for a custom pattern.

Example Command

binwalk -D='signature:extension' firmware.bin

How to Create Custom Signatures

  1. Open the /etc/binwalk/magic file in a text editor.
  2. Define your signature using the file syntax. Example:
  • 0 string CUSTOMSIG Custom file format >
  1. Save and test the signature:
  • binwalk firmware.bin

6. Visualization

Generate entropy graphs to visualize data patterns in the binary.

Technical Insight

Entropy graphs are useful for spotting compressed or encrypted regions visually. While Binwalk no longer directly supports graphing, you can pipe entropy data to external tools like Gnuplot.

Scenario

You want a visual representation of a binary’s structure to identify patterns or anomalies.

Command for Entropy Graph

binwalk --entropy firmware.bin > entropy.log
gnuplot entropy.log

Conclusion

Binwalk 3.1.0 offers unmatched power for firmware analysis. From signature scanning to entropy graphs, it’s your ultimate tool for decoding binaries. With improved performance and new features, it’s a must-have for reverse engineers and security researchers.

Install Binwalk 3.1.0

git clone https://github.com/ReFirmLabs/binwalk.git
cd binwalk
sudo python3 setup.py install

Go ahead — unlock the secrets hidden in your binaries! 🔓

--

--

Anindya Sankar Roy
Anindya Sankar Roy

Written by Anindya Sankar Roy

IoT Security Researcher | Bug-bounty Hunter | Freelancer | Jiu-jitsu Athlete

Responses (3)