Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
bulk_extractor — 这是开发分支。生产下载请访问: | Kitploit
工具/GitHubGitHub/simsong/bulk_extractor
磁盘取证OSINT (开源情报)内存取证漏洞分析网络取证取证分析信息收集移动取证隐写术数据恢复数字取证威胁情报数据恢复 分类第 4 名
1.4k219447天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
数字取证 分类第 5 名
磁盘取证 分类第 4 名
取证分析 分类第 5 名
网络取证 分类第 20 名
隐写术 分类第 13 名
GitHubsimsong/bulk_extractor

bulk_extractor

这是开发分支。生产下载请访问:

查看仓库网站

codecov Coverity Scan Build Status

bulk_extractor 是一款高性能数字取证提取工具。它就像一个“获取证据”按钮,可快速扫描任何类型的输入(磁盘镜像、文件、文件目录等),并提取结构化信息,如电子邮件地址、信用卡号、JPEG 和 JSON 片段,而无需解析文件系统或文件系统结构。结果保存在易于检查、搜索或用作其他取证处理输入的文本文件中。bulk_extractor 还会为其发现的某些类型特征(如 Google 搜索词和电子邮件地址)创建直方图,因为先前的研究表明,此类直方图在调查和执法应用中尤其有用。

与其他数字取证工具不同,bulk_extractor 会探测每个字节的数据,以判断它是否是可解压或可通过其他方式解码的序列的起始位置。如果是,则对解码后的数据递归地重新检查。因此,bulk_extractor 能够发现 BASE64 编码的 JPEG 和压缩的 JSON 对象等传统雕刻工具会遗漏的内容。

此源码树构建 bulk_extractor 2.2.0。如需用于生产环境,请优先使用 https://github.com/simsong/bulk_extractor/releases 中经过测试的发行版。

构建 bulk_extractor

我们建议从源代码构建。我们在 etc/ 目录中提供了许多 bash 脚本,可用于配置干净的虚拟机:

root@kitploit:~
git clone https://github.com/simsong/bulk_extractor.git
./bootstrap.sh
./configure
make
make check
make install

有关安装软件包和构建 bulk_extractor 的详细说明,请阅读此处的 wiki 页面: https://github.com/simsong/bulk_extractor/wiki/Installing-bulk_extractor

有关 bulk_extractor 的更多信息,请访问:https://forensics.wiki/bulk_extractor

文档

生成的 PDF 手册在更改合并到 main 后发布于 https://simsong.github.io/bulk_extractor/ 。其中包含 2.2 版操作手册和开发人员手册。拉取请求会以工作流工件的形式收到相同的 PDF。

已测试配置

此版本的 bulk_extractor 需要 C++17。当前验证涵盖:

  • Apple Silicon macOS(本地构建和 make distcheck,2026-07-19)
  • Ubuntu 22.04 和当前的 macOS GitHub Actions 运行器

etc/ 下的旧平台准备脚本与当前的 CI 支持并不等同,可能需要进行维护。

bulk_extractor 无法正常工作的已测试配置

  • Debian 10(不支持原生构建)

推荐引用

如果您正在撰写科学论文并使用 bulk_extractor,请按以下方式引用:

Garfinkel, Simson, Digital media triage with bulk data analysis and bulk_extractor. Computers and Security 32: 56-72 (2013)

  • Science Direct
  • 文献计量
  • 作者网站
root@kitploit:~
@article{10.5555/2748150.2748581,
author = {Garfinkel, Simson L.},
title = {Digital Media Triage with Bulk Data Analysis and Bulk_extractor},
year = {2013},
issue_date = {February 2013},
publisher = {Elsevier Advanced Technology Publications},
address = {GBR},
volume = {32},
number = {C},
issn = {0167-4048},
journal = {Comput. Secur.},
month = feb,
pages = {56–72},
numpages = {17},
keywords = {Digital forensics, Bulk data analysis, bulk_extractor, Stream-based forensics, Windows hibernation files, Parallelized forensic analysis, Optimistic decompression, Forensic path, Margin, EnCase}
}

环境变量

可以通过设置以下环境变量来改变 bulk_extractor 的运行方式:

其他调试提示:

  • 运行 -xall 以不加载任何扫描器运行。
  • 使用 0.001% 的随机抽样运行,以调试读取镜像大小和几次快速寻址。

可加载扫描器

bulk_extractor 从通过 -P 或 BE_PATH 提供的目录中加载名为 scan_.so(在 macOS 上为 scan_.dylib,在 Windows 上为 scan_*.dll)的扫描器模块。模块导出以下 C 链接工厂函数:

root@kitploit:~
extern "C" scanner_t *bulk_extractor_scanner_v1();

该工厂返回一个普通的 scanner_t 函数。请针对与可执行文件相同的 bulk_extractor 源码版本构建模块;扫描器的 PHASE_INIT 处理程序必须调用 sp.check_version()。模块会一直保持加载,直到扫描器清理完成。

在 Windows 上构建

目前不支持原生 Windows 构建。

Windows MinGW build GitHub Actions 工作流会在每次拉取请求时于 Ubuntu 上交叉编译可执行文件,并在 bulk_extractor-windows-x86_64 工件中上传 bulk_extractor64.exe。该工作流会验证 PE 可执行文件不导入 MinGW、RE2、Abseil、Expat、zlib 或 GNU crypto 运行时 DLL。Windows 运行器会下载并运行该确切工件,针对包含 Unicode 文件名的目录进行测试。该工作流使用 x86_64 MinGW-w64 POSIX 工具链,以及来自固定 vcpkg 签出版本的静态 Expat、RE2 和 Abseil。CI 工件目前在没有 libewf 的情况下构建,因此不包含 E01 支持,也未签名,且不是发布安装程序。工作流文件及其维护的构建说明位于 .github/workflows/mingw.yml 和 doc/mingw_notes.txt。

BULK_EXTRACTOR 版本发布说明

版本 2.2.0(2026 年 7 月 19 日)

将 be20 API 及其源代码依赖项集成到 bulk_extractor 源码树中,消除了递归子模块设置。统一构建现在会同时验证 bulk_extractor、be20 和 DFXML,并修复了通过全镜像测试和 AddressSanitizer 发现的线程池关闭缺陷。

版本 2.1.1(2024 年 4 月 26 日)

将 jpeg_carved 特征记录器重命名为 jpeg,这样就可以用 -S jpeg_carve_mode=2 设置 jpeg 雕刻模式,而不是令人困惑的 -S jpeg_carved_carve_mode=2。

版本 2.0

bulk_extractor 2.0(BE2)现已可用。虽然它可以与基于 Java 的查看器配合使用,但我们目前没有可在 Windows 下运行的安装程序。

BE2 需要 C++17 才能编译。be20 扫描器 API、dfxml_cpp、utfcpp 和 DFXML schema 源代码直接维护在此仓库中,无需递归子模块检出。

这个项目花费的时间比预期的要长。除了升级到 C++17 之外,它还作为一个契机进行了大规模代码重构,并普遍提高了代码质量、可测试性和可靠性。关于该实验的文章将刊登在即将出版的一期 ACM Queue 中。

下载工具
变量行为
DEBUG_BENCHMARK在 report.xml 文件中包含 CPU 基准测试信息。
DEBUG_NO_SCANNER_BYPASS禁用扫描器绕过逻辑;该逻辑会在 sbuf 包含 ngrams 或不具有高唯一字符数时跳过某些扫描器。
DEBUG_HISTOGRAMS打印基于文件的直方图的调试信息。
DEBUG_HISTOGRAMS_NO_INCREMENTAL不使用基于内存的增量直方图。
DEBUG_PRINT_STEPS在每个扫描器针对每个 sbuf 被调用时向 stdout 打印信息。
DEBUG_SCANNER_DUMP_DATA以十六进制转储每个待扫描的 sbuf。
DEBUG_SCANNERS_IGNORE用于识别要忽略的扫描器的子字符串。对调试单元测试很有用。