a forensic carver with a soft heart
基于 Rust、Tauri 2 与 Vue 3 的桌面磁盘取证与数据恢复工具
功能 · 界面 · 支持的格式 · 快速开始 · 从源码构建 · 文档
LovelyCarve 面向电子数据取证、应急响应和 CTF 取证题:加载磁盘镜像、逻辑检材或物理磁盘,识别分区与文件系统,浏览、预览、检索、校验并导出检材中的数据,再用时间线、文件恢复和插件分析补全线索。镜像、文件系统与加密容器的读取器均为纯 Rust 实现,检材始终只读打开;界面以中文为主,提供浅色、深色和樱花色三套主题。
- 案件管理:一个目录就是一个案件,登记多份检材,记录标签和带哈希链的操作审计;卷快照与文件索引落盘复用,源镜像暂时缺失时仍可浏览已索引的目录和元数据。
- 检材接入:磁盘镜像、文件夹、归档、AD1 逻辑镜像、Docker/OCI 镜像、iOS 本地备份、Windows 物理磁盘,以及由成员盘重组的 RAID。
- 分区、卷与加密:GPT、MBR/EBR、APM、BSD 分区与 LVM2 逻辑卷;mdadm(元数据 0.90 / 1.x)linear 与 RAID0/1/4/5/6/10 重组,含降级重建、RAID6 双盘恢复与 md 上的 LVM,Intel RST / VROC(IMSM)与 PERC、MegaRAID 等控制器(SNIA DDF)的固件 RAID 卷按元数据重组,无元数据成员盘按 RAID0/RAID5 推定;解锁 BitLocker、LUKS、VeraCrypt、FileVault 2 和加密的 iOS 备份,浏览 NTFS 卷影副本。解密视图按需读取,不生成整卷明文。
- 文件浏览:目录树与分页文件列表,排序、列筛选和递归“全显”;按文件系统能力展示删除项、未分配空间、命名流、符号链接与元数据节点。
- 原类型预览:文本、十六进制、图片、音视频、PDF、Office 文档和归档;SQLite(含 WAL 回放与删除记录恢复)、Realm、PE / ELF / Mach-O / GGUF 等结构化视图;预览可拆出为独立窗口。
- 校验与导出:MD5、SHA-1、SHA-256、SM3;E01 采集哈希核对;导出文件、目录、ZIP、RAW 镜像与解密镜像。读取遇到坏区时报告补零字节,短读不会被当作完整结果。
- 全局搜索:关键词与正则,覆盖 ASCII、UTF-8、UTF-16LE/BE、GBK,可包含删除文件与未分配空间;命中可回到源文件并定位字节偏移,支持去重与 CSV 导出。
- 时间线:投影文件修改时间、插件事件与 NTFS USN 日志,提供年度活动热力图、趋势钻取、筛选和导出。
- 文件恢复:读取 FAT、NTFS、exFAT 的删除记录并重建丢失分区,同时按签名雕刻 JPEG、PNG、GIF、PDF、ZIP/Office、SQLite 等 14 种格式;结果像文件列表一样按目录浏览,扫描可暂停、继续和取消,恢复文件时生成 SHA-256 与来源报告。
- 插件分析:基于 C ABI 的 LPP v2 动态库插件,每个任务在独立宿主进程中运行;插件在识别出的操作系统(按 fstab、盘符组装的卷)、整个检材或选中的文件上分析,输出带类型的记录,结果可排序、检索、回溯来源并查看运行审计;
.lcpkg插件包可在设置中安装。内置linuxinfo,提取 Linux 系统、用户、登录、网络、服务、软件、定时任务与命令历史等信息。 - 命令行与挂载:独立的
lovelycarve-cli不依赖桌面运行时,以images open、files read这样的命令覆盖桌面端全部后端功能,支持交互 shell 和 JSONL 自动化;Windows 下可借助 Dokany 把卷只读挂载为盘符或文件夹。
以下截图来自 2026 精武杯服务器取证检材(Ubuntu 22.04,E01,58 GiB)。
| 镜像信息 | SQLite 浏览与删除记录 |
|---|---|
![]() |
![]() |
| 分区布局、平台识别、完整性校验与采集信息 | 浏览器历史库的表与记录,自动回放 -wal |
| 全局搜索 | 时间线 |
![]() |
![]() |
| 13 万处命中按文件去重,查看偏移、编码与上下文 | 59 万条事件的年度热力图与明细 |
| 文件雕刻 | 插件分析 |
![]() |
![]() |
| 从分区扫描恢复文件,按类型筛选并预览 | linuxinfo 解析 wtmp 登录记录并回溯源文件 |
| 类别 | 格式 |
|---|---|
| 镜像容器 | RAW / DD / IMG / ISO、E01 / Ex01、AD1、VMDK、VHD / VHDX、QCOW2、VDI、Parallels PHDI、DMG、DiskGenius PMFX、雷电模拟器 LDBK、光盘 BIN / CUE(多文件、多轨、Mode 1 / XA Form 1)、小米 HDR1 固件、UBI(原始逻辑卷与内嵌 SquashFS) |
| 逻辑检材 | 文件夹(自动展开其中的小米 .bak 备份)、TAR / TAR.GZ、ZIP、7z、Docker / OCI 镜像归档、磁盘内的 Docker 容器、iOS 本地备份、BCP 交换数据 |
| 分区与卷 | GPT、MBR / EBR、APM、BSD 标签、LVM2 线性卷(含跨 PV / 跨阵列)、mdadm RAID 成员(0.90 / 1.x)、Intel IMSM 与 SNIA DDF 固件 RAID、linear / RAID0 / 1 / 4 / 5 / 6 / 10 重组 |
| 文件系统 | NTFS、ext2/3/4、FAT12/16/32、exFAT、APFS、HFS+ / HFSX、Btrfs、ZFS、XFS(v1–v5)、ReFS、UFS / UFS2、SquashFS、ISO 9660 |
| 加密与快照 | BitLocker(密码、恢复密钥、BEK、明文密钥、FVEK / VMK)、LUKS1 / LUKS2、VeraCrypt、FileVault 2(CoreStorage)、加密 iOS 备份、NTFS 卷影副本(VSS) |
支持程度取决于格式变体、文件系统特性和镜像完整性。各格式的实现范围、与 libyal 系列库的能力对照和已知限制见 格式与读取器。
- 获取程序:Windows x64 预编译包通过 GitHub Releases 发布,也可以按下文从源码构建。运行需要 WebView2(Windows 10/11 通常已内置);只读挂载另需 Dokany 驱动,读取物理磁盘需要管理员权限。
- 在起始页或「案件管理」中新建案件,选择一个空目录。
- 「添加检材」选择镜像文件、文件夹、BCP 数据、RAID 成员或物理磁盘。分段镜像选第一段,其余分段放在同一目录。
- 检材加入后会自动识别平台并在后台建立卷快照和文件索引,进度在右上角「任务中心」查看。
- 在「镜像信息」查看分区、解锁加密卷、计算哈希;在「文件列表」浏览和预览;在「工具」中使用全局搜索、时间线和文件恢复;在「任务中心 → 快速分析」运行插件,结果出现在「分析」中。
完整操作说明见 使用指南。
lovelycarve-cli 是独立的命令行工具,不链接 Tauri 或 WebView,直接调用与桌面端相同的后端。命令采用 <集合> <动词> 结构,结果以 JSON 或原始字节写到标准输出:
lovelycarve-cli images open "D:\evidence\disk.E01"
lovelycarve-cli --image "D:\evidence\disk.E01" files tree list --path / --depth 2
lovelycarve-cli --image "D:\evidence\disk.E01" files read "/<卷名称>/Users/alice/report.txt" > report.txt
lovelycarve-cli cli search "recover deleted files"
lovelycarve-cli docs search "BitLocker 恢复密码"桌面端的每个后端命令都有对应的 CLI 命令;cli search 按意图查找命令,docs search 离线搜索随程序附带的使用文档与格式专题。shell 在一个进程中逐行执行命令,JSONL 会话适合脚本与代理编排一系列分析:
Get-Content .\workflow.jsonl | lovelycarve-cli session --events详见 CLI 手册。
插件是导出 lovelycarve_plugin_v1 C ABI 的动态库,连同清单、记录结构与语言包打成插件包。插件通过 LPP v2(LovelyCarve Plugin Protocol)经只读视图访问检材,按声明的记录结构输出带类型的记录,由宿主保存、投影时间线并保留来源。SDK、隔离宿主 lc-plugin-host 与内置的 linuxinfo 由子模块 LovelyCarve-Plugins 维护。已发现的插件被视为可信代码,进程隔离用于故障隔离,不是权限沙箱。
协议与开发说明见 插件协议 和 Linux 基本信息插件。
桌面开发与发布配方面向 Windows x64。默认构建不包含二维码识别和 OCR,不需要 OpenCV 或 CUDA。
| 依赖 | 版本或说明 |
|---|---|
| Rust | stable,最低 1.99 |
| Bun | 版本见 package.json 的 packageManager |
| just | 1.53 或更新 |
| PowerShell | 7 或更新 |
| Visual Studio | C++ x64 生成工具与 Windows SDK |
| OpenSSL | Windows 开发文件,默认位置 C:\Program Files\OpenSSL-Win64 |
| WebView2 | 运行时 |
git clone --recurse-submodules https://github.com/LovelyTeams/LovelyCarve.git
cd LovelyCarve
just bootstrap # 初始化插件子模块并安装前端依赖
just dev # 启动桌面开发版| 目的 | 命令 |
|---|---|
| 前端开发 / 生产构建 | just dev-fe / just build-fe |
| 桌面安装包 / 便携包 | just build-release / just pack |
| CLI 开发 / 发布 / Windows 压缩包 | just run-cli / just build-cli / just pack-cli |
| 含二维码识别与 OCR 的版本 | just build-release-full / just pack-full / just pack-cli-full |
| 全部检查 | just verify-fe / just verify-rust / just verify-plugins |
GitHub 自动生成的源码压缩包不含插件子模块,请使用 --recurse-submodules 克隆,已有克隆可运行 git submodule update --init --recursive。Visual Studio、OpenSSL 路径、可选 QR/OCR 依赖和跨平台 CLI 构建见 开发指南;just --list 列出全部配方。
| 主题 | 文档 |
|---|---|
| 使用 | 使用指南、CLI 手册、iOS 备份 |
| 格式与读取器 | 格式总览与维护要求,以及文件系统(NTFS、ext、FAT / exFAT、XFS、ReFS、APFS、HFS+、ISO 9660)、分区与阵列(GPT、MBR、LVM2、md RAID、固件 RAID)、加密与快照(LUKS、BitLocker、FileVault 2、VSS)、镜像容器(分段 RAW、QCOW、PHDI、光盘 BIN / CUE、UBI 固件)和压缩与备份(GZIP、Android / 小米备份)专题 |
| 插件 | LPP 协议与 SDK、Linux 基本信息插件 |
| 开发 | 开发指南、架构说明、前端规范、前端模块与生命周期、发布指南 |
完整列表见 文档导航。
- 删除项和雕刻结果不保证内容完整:雕刻受块对齐、碎片化和格式覆盖范围限制,未命中不代表文件不存在。
- 独立的孤儿文件扫描尚未接入;丢失分区只能在「文件恢复」中按 FAT、NTFS、exFAT 的引导扇区与残留
$MFT查找。文件时间线目前只投影修改时间。 - 桌面开发与发布只在 Windows 上验证;macOS 和 Linux 需要自行构建和验证。
- 当前案件格式不兼容早期开发版的
.carve案件。
欢迎提交问题报告、格式样本线索、文档修正和代码。开始之前请阅读 贡献指南 和 仓库约定。报告读取问题时附版本、复现步骤和可公开的最小合成样本,不要上传真实检材、案件目录、个人数据或凭据。安全漏洞请按 安全策略 私下报告。
LovelyCarve 以 AGPL-3.0-only 许可发布。Copyright (C) 2026 LovelyCarve contributors.
项目使用并修改了许多开源读取器与解析库,包括 SecurityRonin 的 ewf / vmdk / vhd / vhdx / bitlocker / luks / veracrypt / vsc / ad1 / sqlite / ios-backup forensic 系列,以及 ntfs、ext4-view、rust-fatfs、exfat、xfuse、dpp(APFS / HFS+ / DMG)、backhand(SquashFS)、refsprogs 和 Google Magika 等;格式行为参照了 libyal 系列库与 dfVFS 的公开文档和样本,富文档预览使用 Flyfish File Viewer。各组件的来源、许可证与本地修改见 THIRD_PARTY_NOTICES.md 和 src-tauri/vendor/UPSTREAM.md。






