从笔记到插件:16 个 LovelyCarve 原生取证插件开源了
ljnljn
ljnljn
ljnljn学习之路
2026年10月20日 11:33
河北
去阅读
做取证的人大概都有过这样的时刻:
上一次分析注册表,命令和路径记得清清楚楚;过了几个月换一台机器、换一个镜像、一套题,还是要重新翻笔记、重新敲命令、重新确认输出字段。方法明明已经会了,时间却还是花在重复劳动上。
更麻烦的是,笔记里的步骤是给人看的,不是给工具看的。它没法在检材上自动运行,也没法保证每一次都按同样的口径解析、留下同样的来源信息。(其实就是记性差了不记得了还得翻浪费时间)
所以这次我做了一件事:把可复用的取证方法从文档里拿出来,写成 LovelyCarve 原生插件。目前一共 16 个方向,全部开源,仓库里带源码、测试、构建说明,Release 里直接放编译好的 Windows DLL。
一、一切皆插件:为什么是“插件”,不是“脚本”
脚本当然也能解决问题,但插件有几个不一样的地方:
- 输入输出是固定的。同一个分析器,面对同类检材,输出的字段和结构一致,方便复核和对比。
- 来源可追溯。结果里保留文件来源、偏移、记录位置等信息,而不是只有一段终端输出。
- 不依赖临时环境。编译一次,放进插件目录,之后在 LovelyCarve 里直接调用。
- 边界更清楚。插件只读检材,不执行检材内容,不访问网络,解析失败会返回错误,而不是悄悄给一个空结果。
这次开源的 16 个插件,都是按这个思路做的。
二、16 个插件,覆盖哪些方向
Windows 与注册表
- ljnljn-windows-registry:注册表综合分析。覆盖 SAM 中的 NT hash、最后登录、账户 SID,SOFTWARE 中的系统版本、Uninstall 安装信息,SYSTEM 中的 USBSTOR 插拔记录,以及密码策略。
- ljnljn-registry-installdate:从 SOFTWARE hive 读取
InstallDate,支持单文件和整份检材两种模式。 - ljnljn-recyclebin:解析 Windows 回收站
$Iv1/v2 元数据,提取原始名称、路径、大小和删除时间,并检查同目录$R文件是否存在。 - ljnljn-psreadline:从多用户 PowerShell 历史中提取字面 HTTP/HTTPS URL,以及包含 URL 的逻辑命令数。
- ljnljn-chromium-history:统计 Chrome / Edge 多用户、多 profile 的 URL 访问与标题,区分实际
visits记录和urls.visit_count。
日志、网络与时间线
- ljnljn-weblog-sqli:在 Web 访问日志中定位 sqlmap 风格的注入参数、会话与证据区间。
- ljnljn-dns-heartbeat:解析 classic pcap 中的 DNS 查询,按域名统计查询间隔,辅助判断周期心跳。
- ljnljn-qq-setup-log:从 QQ 安装日志中提取安装、完成、启动等时间片段。
镜像、加密与文件
- ljnljn-ewf-header:解析 EWF/E01 的头部、节段描述与磁盘大小等元数据。
- ljnljn-bitlocker-vhd:识别 VHD/VHDX 中的 BitLocker 签名与密钥线索。
- ljnljn-sqlcipher-profile:识别 SQLCipher 4 文件头,并在有密钥材料时试校验单页 HMAC。
- ljnljn-stickynotes-vcpwd:从便笺 CSV 中提取 VCpwd 凭据与上下文。
- ljnljn-exif-photo:递归识别照片真实格式,解析 EXIF/GPS 等元数据。
- ljnljn-xlsx-dedup:按姓名、电话、地址对 xlsx 收件人表去重统计。
Android
- ljnljn-android-packages:解析
packages.xml,提取系统版本、应用版本、安装器等软件包信息。 - ljnljn-android-contacts2:解析
contacts2.db通话记录,按联系人与号码去重统计。
这些插件不是把某一道题的答案写死,而是把“怎么做”固化成可重复运行的解析器。换一个同类检材,仍然能用。
三、为什么推荐 LovelyCarve
做完这批插件,我对 LovelyCarve 的感受是:它适合把取证经验“工程化”。
第一,它是卷 / 文件系统视角的工具。镜像、分区、挂载、浏览、分析,这条链路是连贯的。很多零散脚本缺的正是这个上下文,而 LovelyCarve 把检材视角和分析器接在了一起。
第二,它有真正的插件机制。插件不是简单调用一个外部命令,而是通过 C ABI / LPP v1 协议接入,能用 Rust SDK 编写,支持进程隔离。解析不可信检材时,插件崩溃不会把主程序一起带走,这一点在实际取证里很重要。
第三,它适合沉淀团队能力。一个实验室常用的解析逻辑,可以做成插件固定下来;新人不需要重新理解一遍命令,只要选对分析器、核对结果和来源。对经常参加电子数据取证比赛、做教学或做案件复核的人,这种可重复性很有价值。
第四,插件协议和示例是公开的。官方提供了 SDK、协议文档和示例插件,社区也有插件仓库,学习和接入的成本比想象中低。
第五,lovelycarve的cli功能强大,非常方便让ai进行调用,相比于沉重的其他cli优势明显。
LovelyCarve 还处于早期阶段,肯定比不上完善的商业取证软件。但如果你已经在用脚本解决重复问题,或者想把自己的方法沉淀成更稳定的工具,它值得认真试一试。
四、安装和使用
每个插件都是一个独立仓库,仓库内置了构建所需的 SDK,可以单独测试和编译。
使用 Release 版本最简单:
- 打开对应仓库的 Releases,下载 DLL、
plugin.toml和SHA256SUMS.txt。 - 在 LovelyCarve 的插件目录下新建一个子目录,例如
ljnljn-windows-registry。 - 把
plugin.toml和 DLL 放进去。 - 重启 LovelyCarve,让引擎重新发现插件。
- 在检材或文件上运行对应的 analyzer,核对结果和来源。
每个 Release 都附带 SHA256SUMS.txt,下载后可以先校验文件完整性。
仓库入口:
https://github.com/topics/lovelycarve-plugins
也可以在 GitHub 搜索 ljnljn,16 个仓库都使用统一的 tag 和 topic:lovelycarve-plugins。
(其中的浏览器插件解析示例)
写在最后
取证工具的价值,不只在于“能跑出一个结果”,更在于结果能不能复现、能不能解释、能不能被下一个人接手。
把方法做成插件,是我对这件事的一次尝试。16 个插件不算多,但它们至少让一部分重复劳动,从“每次重新敲一遍”变成了“选一个分析器,核对来源”。这些插件也是抛砖引玉的作用,也希望能够通过各位师傅们的共同行动将其打造成完整的取证插件库,更多人一起共享Σ>―(〃°ω°〃)♡→
如果你也在用 LovelyCarve,或者正在把自己的取证脚本整理成工具,希望这批插件能给你一点参考。
仓库统一入口:
https://github.com/topics/lovelycarve-plugins
LovelyCarve 插件协议:
https://github.com/LovelyTeams/LovelyCarve/blob/main/docs/PLUGIN_PROTOCOL.md
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。







![[全链哨兵]全场景渗透测试Agent工具,正式开源!"](/images/random/titlepic/11.jpg)
评论