7h3kn0w3r/DedupInspector
GitHub: 7h3kn0w3r/DedupInspector
一款轻量级便携的 Windows 离线取证工具,用于在无需去重服务的情况下从 NTFS 数据去重卷中解析元数据并恢复原始文件。
Stars: 4 | Forks: 0
# DedupInspector
一款轻量级、便携、离线的取证实用工具,用于从 Windows Data Deduplication 卷中恢复文件。
该工具使用以下内容重建去重文件:
* 导出的 NTFS `$MFT`
* Deduplication **Stream** (`.ccc`) 文件
* Deduplication **Chunk** (`.ccc`) 文件
无需安装或运行 Windows Data Deduplication 服务。
使用现代 **C++17**、Win32 API 和 C++ 标准库,结合 **CMake** 构建为原生 Windows 应用程序,生成单个独立的可执行文件 (`DedupInspector.exe`)。
**不依赖 Qt、.NET、Java、Electron、Node.js 或 MFC。**
## 构建
要求 Windows + MSVC(Visual Studio 2019/2022 Build Tools)或
MinGW-w64。本项目无法直接从 Linux/macOS 交叉编译
(因为使用了 Win32 API + Windows Compression API)。
### MSVC(开发者命令提示符 / PATH 中包含 VS 工具的 PowerShell)
```
cmake -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release
```
二进制文件生成于 `build\bin\Release\DedupExplorer.exe`(通过 `CMakeLists.txt` 中的 `/MT` 开关静态
链接 CRT,因此它可以在纯净的
Windows 安装上运行,无需 VC++ Redistributable)。
### MinGW-w64
```
cmake -B build -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release
cmake --build build
```
生成 `build/bin/DedupExplorer.exe`,已静态链接
(`-static -static-libgcc -static-libstdc++`),以实现同样的
复制即可运行的便携性。
## 项目布局
```
DedupExplorer/
CMakeLists.txt
include/
dedup_types.h shared structs (DedupFileEntry, ChunkHashRecord, ...)
src/
main.cpp WinMain, COM/CommonControls init, message loop
mainwindow.h/.cpp single-window Win32 UI (MFT Explorer-style)
mft_parser.h/.cpp $MFT record/attribute parsing (FILE_NAME, REPARSE_POINT)
reparse_parser.h/.cpp IO_REPARSE_TAG_DEDUP payload parsing
stream_parser.h/.cpp locates Stream_* files, extracts per-file CKHR blob
ckhr_parser.h/.cpp Chunk Hash Record extraction
chunk_parser.h/.cpp .ccc container indexing, chunk read + decompression
recovery_engine.h/.cpp reassembles original files from resolved chunks
utils.h/.cpp file I/O, GUID/hex formatting, path helpers
resources/
app.rc, app.manifest version info + Common Controls v6 manifest
```
## 📖 了解更多
有关 Windows Data Deduplication 工作原理的深度技术解析,包括其内部结构、元数据、重解析点 (reparse points)、ChunkStore 以及逆向工程细节,请阅读配套的研究文章:
➡️ **https://7h3kn0w3r.github.io/blog/windows-data-deduplication/#how-data-deduplication-work**
这篇文章解释了 **DedupInspector** 背后的概念以及该工具所使用的取证技术。
## 数据集免责声明:观察到的异常是由提供的测试数据引起的,而非工具本身。数据集中很大一部分包含虚构或非真实的文件,这可能会在分析过程中导致意外行为。然而,部分样本是合法的真实文件,包括 xiaomi.jpg 和其他有效的工件。
标签:Bash脚本, C++17, CMake, HTTP头分析, Linux, NTFS, 安全意识培训, 数字取证, 数据恢复, 自动化脚本