PAGES
← all tools
◆ Digital Forensics & Incident Response

bulk-extractor

v2.2.0 open-source

bulk_extractor is a digital forensics tool that scans disk images and files to extract structured information such as email addresses and credit card numbers.

Summary

bulk-extractor is an open-source digital forensics tool that scans disk images, files, or directories byte-by-byte to extract structured evidence such as email addresses, credit card numbers, JPEGs, and JSON snippets without parsing file system structures, and it decodes and recursively re-examines compressed or encoded data that carving tools built around file systems tend to miss. It runs from the command line, built from source or installed from a tagged release, producing text output and feature histograms suited to indexing and further processing. It is aimed at forensic examiners and law enforcement investigators doing evidence extraction rather than live incident response. Development dates to 2012 and has drawn 55 contributors, though activity has slowed to 21 commits in the past year with its last release over two years ago, worth weighing before adopting it for production casework.

bulk_extractor is a digital forensics tool that scans disk images and files to extract structured information such as email addresses and credit card numbers.

How bulk-extractor helps

What email addresses, credit card numbers, and other identifiers are hiding in this disk image?

scans every byte of the input and writes out structured feature files listing each address, number, or identifier found, regardless of where it sits in the file system

Is there evidence in this image that a file-system-aware carving tool would have missed?

probes each byte position for the start of a compressed or encoded sequence, decodes it, and recursively re-examines the result, surfacing things like base64-encoded JPEGs or compressed JSON buried inside other files

Which search terms or contacts show up most across this evidence, and how often?

builds histograms of features such as Google search terms and email addresses, letting an investigator spot the most frequent or unusual entries without reading every hit

Can I pull evidence out of a deleted or corrupted partition without a working file system?

reads the input as a raw byte stream rather than parsing file system structures, so it still extracts features even when directory entries or metadata are damaged or absent

How much duplicate content is padding out my results from a recursive extraction?

applies a configurable deduplication mode that skips buffers whose content hash was already seen, shrinking processing time and output size at the cost of possibly losing some recursive paths to identical content

Where do I start rescanning a large image after an interrupted run?

accepts a starting page number so scanning can resume partway through the input instead of restarting from the beginning

all 16 features, with the evidence for each →

Languages

Not documented

Features

16 capabilities · 5 backed by code, an API document or a real run

Built from bulk-extractor's releases, docs, README and our own runs. “Seen” marks the month we first spotted a release the vendor didn't date. Group names and tags are our labels.

Compare with peers →

  • bulk-extractor covers 1 of the 8 investigation and response capabilities we track.

What bulk-extractor offers you

  • Command-line interface6
  • Plugin system1
Disk and filesystem forensics 3 features Investigation and response since 2011
Platform and record support expansion shipped Extends parsing capabilities to include big-endian utmp records, Windows raw-device input, and new artifact carvers like VIN and RawTherapee thumbnails. 5 releases · 2 other sources · first seen Apr 2024

Shared capability: Disk and filesystem forensics

release

  • Supports big-endian utmp records, broadening login-record parsing to big-endian platforms. v2.2.0 · Aug 2026 · source · release history
  • New RawTherapee Image8 thumbnail carver for recovering embedded thumbnails. v2.2.0 · Aug 2026 · source · release history
  • New VIN (Vehicle Identification Number) scanner for extracting VINs from disk images. v2.2.0 · Aug 2026 · source · release history
  • Renames the jpeg_carved feature extractor to jpeg v2.1.1 · Apr 2024 · source · release history
  • The jpeg_carved feature extractor is renamed to jpeg, requiring configuration updates for any setups using the previous name. v2.1.1 · Apr 2024 · source · release history

docs

  • Digital forensics cyber tool that scans disk images and files to extract structured data like email addresses, credit card numbers, and JPEGs without parsing fi

example

  • Use the new extractor name in subsequent scans. bulk_extractor -S jpeg_carve_mode=2 <image> v2.1.1 · Apr 2024 · source
Start offset control shipped Allows scanning to begin at a specified byte offset within a disk image. 2 releases · 3 other sources · first seen Sep 2011

Shared capability: Disk and filesystem forensics

Also counts toward: Command-line interface

release

  • Supports Windows raw-device input, enabling direct acquisition from physical drives on Windows. v2.2.0 · Aug 2026 · source · release history
  • Adds -Y flag (mapped to opt_offst_start) to control where phase 1 processing begins 2011-09-29 System Administrator <root@arlington-8-30-77-137.ncr.vt.edu> · Sep 2011 · source · release history

docs

  • Digital forensics cyber tool that scans disk images and files to extract structured data like email addresses, credit card numbers, and JPEGs without parsing fi

example

  • Start scanning an image or disk image from a specific byte offset. bulk_extractor -Y <start_offset> <target> 2011-09-29 System Administrator <root@arlington-8-30-77-137.ncr.vt.edu> · Sep 2011 · source
  • Scan raw physical disk on Windows bulk_extractor64.exe -o output \\.\PhysicalDrive0
Disk image integrity verification shipped Automatically computes MD5 hashes for processed disk images and includes them in the output report. 1 release · 1 other source · first seen May 2011

Shared capability: Disk and filesystem forensics

release

  • Adds automatic MD5 computation for disk images and includes the hash in report.xml 2011-05-14 Simson Garfinkel <simsong@Alphonse-Mucha.local> · May 2011 · source · release history

example

  • Verify disk image integrity immediately after extraction without running a separate hashing tool. bulk_extractor -f result/ diskimage.img && grep MD5 result/report.xml 2011-05-14 Simson Garfinkel <simsong@Alphonse-Mucha.local> · May 2011 · source
Other / not yet classified 13 features Features we have not matched to a capability yet. A suggested match is marked.
Loadable scanner modules verified suggested Searches for and loads external scanner modules from specified paths or environment-variable-defined directories. 22 releases · 4 other sources · first seen Apr 2010

Suggested capability: Disk and filesystem forensics. This is our guess, not confirmed.

Also counts toward: Command-line interface, Plugin system

release 22 total

  • Adds scan_ntfslogfile.cpp scanner for NTFS transaction log data. 2019-11-10 Simson Garfinkel <simsong@acm.org> · Nov 2019 · source · release history
  • Adds scan_evtx.cpp scanner for Windows Event Log EVTX files. 2019-11-10 Simson Garfinkel <simsong@acm.org> · Nov 2019 · source · release history
  • Adds scan_ntfsindx.cpp scanner for NTFS index allocation nodes. 2019-11-10 Simson Garfinkel <simsong@acm.org> · Nov 2019 · source · release history
  • Adds scan_utmp.cpp scanner for utmp system login records. 2019-11-10 Simson Garfinkel <simsong@acm.org> · Nov 2019 · source · release history
  • Adds scan_ntfsmft.cpp scanner for NTFS Master File Table entries. 2019-11-10 Simson Garfinkel <simsong@acm.org> · Nov 2019 · source · release history
  • Excludes disabled recorders from carving and tag support 2013-08-20 Man Page <simsong@mncrnpsedu.local> · Aug 2013 · source · release history

command line

  • -P — Search for loadable scanner modules. May be specified more than once. The default search path also includes the directories in the environment variable. v2.2.0beta1 · Aug 2026 · command-line history

example

  • Enable TCP/IP memory structure carving when running the network scanner. bulk_extractor -S carve_tcp <target_image> 2013-07-26 Simson Garfinkel <simsong@Mucha.local> · Jul 2013 · source
  • Set a custom context window size (e.g., 4096 bytes) for memory-efficient processing. bulk_extractor -C 4096 -o output /path/to/image 2011-02-15 Simson Garfinkel <simsong@imac3.home> · Feb 2011 · source
  • Enable raw output mode for disk image analysis using the new CLI flag. bulk_extractor -r <image_file> 2010-12-16 Simson Garfinkel <simsong@247.sub-69-99-140.myvzw.com> · Dec 2010 · source
Diagnostic and build infrastructure shipped Adds runtime observability via diagnostic logging, ensures build compatibility across multiple Linux distributions and Windows targets, and provides container image support. 5 releases · first seen Aug 2026

release

  • Adds diagnostic logging foundation for improved runtime observability. v2.2.0 · Aug 2026 · source · release history
  • Adds a container image for regular scans. v2.2.0 · Aug 2026 · source · release history
  • Automates Debian release package builds. v2.2.0 · Aug 2026 · source · release history
  • Adds Ubuntu MinGW Windows artifact build, producing Windows binaries from Linux CI. v2.2.0 · Aug 2026 · source · release history
  • Automates Fedora and openSUSE RPM release builds. v2.2.0 · Aug 2026 · source · release history
Search and processing controls shipped Adds support for case-sensitive pattern searching, resume status reporting, and configuration of maximum wait times during scans. 4 releases · 1 other source · first seen Jan 2024

Also counts toward: Command-line interface

release

  • Reports restart recovery status when resuming an interrupted scan. v2.2.0 · Aug 2026 · source · release history
  • Adds case-sensitive find option for pattern searches. v2.2.0 · Aug 2026 · source · release history
  • Adds --max_minute_wait flag support, now correctly honored during scans. v2.2.0 · Aug 2026 · source · release history
  • -F flag now supports open-ended regular expressions without hanging due to the switch to Google's RE2 regex compiler v2.1.0 · Jan 2024 · source · release history

example

  • Run bulk_extractor with an open-ended regex that previously caused hangs. bulk_extractor -F '[a-z]*@company.com' disk.img v2.1.0 · Jan 2024 · source
Scanner activation and default configuration shipped Allows users to explicitly enable or disable specific built-in scanners via command-line flags, overriding their default state. 4 releases · 1 other source · first seen Jan 2024

Also counts toward: Command-line interface

release

  • scan_outlook and scan_hiberfile scanners are now disabled by default and must be explicitly enabled via command-line flags v2.1.0 · Jan 2024 · source · release history
  • -ehiberfile CLI flag re-enables the scan_hiberfile scanner, which is disabled by default in v2.1 v2.1.0 · Jan 2024 · source · release history
  • -eoutlook CLI flag re-enables the scan_outlook scanner, which is disabled by default in v2.1 v2.1.0 · Jan 2024 · source · release history
  • scan_aes no longer scans for 192-bit AES keys by default, though this behavior can be re-enabled v2.1.0 · Jan 2024 · source · release history

example

  • Re-enable the scan_outlook scanner which is off by default. bulk_extractor -eoutlook disk.img v2.1.0 · Jan 2024 · source
Recursive processing depth limit verified suggested Sets a maximum depth for recursive processing of inputs. 4 other sources · first seen Aug 2026

Suggested capability: Disk and filesystem forensics. This is our guess, not confirmed.

command line

  • --dedupe-mode — Set duplicate processing: 0 preserves all recursive paths and carved objects, 1 deduplicates ZIP recursion, and 2 uses legacy recursive and carved-object deduplication. The default is 2. Set the ZIP recursion limit with (default 4). v2.2.0 · Aug 2026 · command-line history
  • --deduplciate-mode — Set duplicate processing: 0 preserves all recursive paths and carved objects, 1 deduplicates ZIP recursion, and 2 uses legacy recursive and carved-object deduplication. The default is 0. Set the ZIP recursion limit with (default 4). v2.2.0beta4 · Aug 2026 · command-line history
  • --deduplicate — Bypass buffers whose content hash was seen earlier. This can reduce processing and output size, but concurrent runs may retain different forensic paths for equal content. Disabled by default. v2.2.0beta3 · Aug 2026 · command-line history
  • -M — Set the maximum recursive-processing depth. v2.2.0beta1 · Aug 2026 · command-line history
Automatic output cleanup shipped Automatically removes the output directory after processing is complete. 2 releases · 1 other source · first seen Sep 2011

Also counts toward: Command-line interface

release

  • Adds -Z flag support to remove nested output directories. v2.2.0 · Aug 2026 · source · release history
  • -Z option added to zap (delete) the output directory after processing is complete. 1.0.5 · Sep 2011 · source · release history

example

  • Process an image and automatically remove the output folder when finished. bulk_extractor -Z -s <session> <image> 1.0.5 · Sep 2011 · source
Stop list and alert list filtering verified Reads stop lists and alert lists from specified files to control which terms are suppressed or flagged during scanning. 2 other sources · first seen Aug 2026

command line

Parallel scan coordinate shifting shipped Shifts output coordinates by an offset to enable parallelized scans across multiple systems. 1 release · 1 other source · first seen Nov 2011

release

  • Adds -A offset flag to shift output coordinates, enabling parallel processing across multiple systems. 2011-11-23 Simson Garfinkel <simsong@imac3.home> · Nov 2011 · source · release history

example

  • Shift output coordinates by an offset to handle parallelized scans across multiple systems bulk_extractor -A 1000000 image.img 2011-11-23 Simson Garfinkel <simsong@imac3.home> · Nov 2011 · source
Time range analysis shipped suggested Defines a specific time window for analysis using start and end timestamps. 1 release · 1 other source · first seen Nov 2011

Suggested capability: Forensic timeline analysis. This is our guess, not confirmed.

release

  • Adds -Y start-end notation for defining time ranges in addition to the existing -Y start notation. 2011-11-23 Simson Garfinkel <simsong@imac3.home> · Nov 2011 · source · release history

example

  • Define a specific time window for analysis using start and end timestamps bulk_extractor -Y 2011-11-01:00:00:00-2011-11-02:00:00:00 image.img 2011-11-23 Simson Garfinkel <simsong@imac3.home> · Nov 2011 · source
Context window configuration shipped suggested Allows setting a custom context window size for memory-efficient processing. 1 release · 1 other source · first seen Feb 2011

Suggested capability: Disk and filesystem forensics. This is our guess, not confirmed.

Also counts toward: Command-line interface

release

  • Adds the -C switch to bulk_extractor to set the context window size. 2011-02-15 Simson Garfinkel <simsong@imac3.home> · Feb 2011 · source · release history

example

  • Set a custom context window size (e.g., 4096 bytes) for memory-efficient processing. bulk_extractor -C 4096 -o output /path/to/image 2011-02-15 Simson Garfinkel <simsong@imac3.home> · Feb 2011 · source
Archive extraction completeness shipped Improves the recovery of all members from specific archive formats, such as RAR. 1 release · first seen Aug 2026

release

  • Recovers all members from RAR archives, improving completeness of RAR extraction. v2.2.0 · Aug 2026 · source · release history
Feature file customisation verified Prepends user-supplied content to feature files before processing. 1 other source · first seen Aug 2026

command line

Page range control verified Allows scanning to begin at a specified page number within a document. 1 other source · first seen Aug 2026

command line

Lines in monospace are the tool's own words: help text parsed from its source, or an endpoint from its API document. Under release, a line is our summary of a dated release. Under docs, it is quoted from the tool's own documentation or website. Each links back to the source it came from.

Score card

  1. Shipping velocity releases a month, last 12 months
  2. Documentation quality release-notes rubric, 0–100
  3. Breaking-change discipline how rarely a release breaks users, and notice given
  4. Maintenance risk quiet time against its own cadence, maintainers
  5. Innovation & surface new capabilities, API and MCP surface
  6. Community health
  7. Contributor trend distinct committers, this year against last
  8. Maintainer concentration bus factor now against a year ago
  9. Issue backlog trend issues closed per issue opened, 12 months
  10. Responsiveness median time to a maintainer’s first reply

Nine scores for bulk-extractor, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.

Score cards are part of every paid plan.

See plans →

Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.

How this is scored
  • Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
  • Documentation quality — the release-notes rubric published on the analytics page, unchanged.
  • Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
  • Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
  • Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
  • Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
  • Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
  • Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.

Release-note detail over time

See how much detail bulk-extractor puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.

Checking release-note history…

Explore the full chart →

Releases

Show

22 entries

  1. August 20261
  2. January 20261
  3. April 20241
  4. January 20241
  5. November 20191
  6. August 20131
  7. July 20131
  8. November 20112
  9. September 20112
  10. June 20111
  11. May 20111
  12. February 20111
  13. December 20103
  14. November 20102
  15. August 20101
  16. July 20101
  17. April 20101
    Show

    22 entries

    Project health

    Issue, contributor and maintainer activity in simsong/bulk_extractor, 2023-10 – 2026-09, as of 2026-09-25. Twelve-month figures first; the trend lines run the whole window.

    1. Contributors 4 +1 vs prior 12 months
    2. Maintainers 2 +4 joined · −2 left, last 12 months
    3. Bus factor 1 committers behind half the commits
    4. Community-filed 12% of issues opened, last 12 months
    5. Median time to close 3.3 years first maintainer reply 2.6 days
    6. Open backlog 65 of 349 issues ever filed
    1. Issues opened / month 0 · 0 communitymaintainers
    2. Open backlog 65
    3. Contributors / month 2
    4. Commits / month 2
    5. Stars 1,422
    Issue themes, last 12 months
    • bugs 23%
    • features 8%
    • docs 2%
    • other 67%

    Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this

    Libraries its release ships

    What its latest release locks, checked against known advisories.

    None of its release's images build from a lockfile we can read.

    Add the badge to your README

    Maintain this project? The badge links readers straight to this page, so they can follow every release here.

    Tracked by Cyber Toolchain Choose a badge style and copy the code →
    browse all tools → score card for your toolchain →