基于“启发式判定”的TrueCrypt/VeraCrypt容器文件定位突破
原创
MicroPest
MicroPest
MicroPest
2026年11月11日 19:35
安徽
去阅读
一直在搜寻Truecrypt/Veracrypt加密容器文件的准确性上进行“孜孜不倦地改进”,有《搜寻VC/TC容器文件的进一步研究》等佐证,但始终未有一个突破性进展。
一、定位突破
移植了上一篇《TC/VC加密容器的密码破解(二):测试验证》中py代码实现原理到delphi中,以前模棱两可的文件,现在基本可以作出判定了(引入了“启发式判定”),迎来了新突破。如下图:
二、一些思考
1、判定器本身(打分 0–10)
| 信号 | 判据 | 加分/扣分 |
|---|---|---|
| 扇区对齐 | 大小是 512 倍数 | +2 |
| 卷头随机性 | 4 个候选偏移 512B 熵 ≥ 7.0 | +2(偏移0),+1(≥2处) |
| 全文件熵 | 采样熵 ≥ 7.8 | +3 |
| 已知格式魔数 | 命中 ZIP/PDF/PNG/RAR/7z/ISO…(23 种) | −4 |
| 文本启发式 | 头部可打印字符 ≥ 75% | −2 |
Verdict 判定映射:
≥8 → 可能是 TrueCrypt/VeraCrypt 容器(high);
≥6 → 同串(medium);
≥4 → 可能是加密数据(特征不全);
<4 → 不太像是加密容器。
2、实测验证
| 样本 | score | Verdict | 评价 |
|---|---|---|---|
| 检测样本二/1、/2、/4(真容器) | 8 / high | 可能是 TC/VC 容器 | ✅ 正确 |
| 检测样本二/3.part1.rar(RAR 分卷) | 2 | 不太像是加密容器 | ✅ 魔数命中排除 |
| 检测样本二/3.7z.001(7z 分卷) | 4 | 可能是加密数据(特征不全) | ✅ 7z 魔数扣分 |
| 检测样本一/20200501(20MB 随机) | 8 / high | 可能是 TC/VC 容器 | ⚠️ 已知误报 |
3、核心结论(最重要的一点)
启发式 Verdict 只能预筛,不能定性。
- 加密数据与纯随机数据在字节层面统计同分布(卷头熵都 ~7.5–7.63,全文件熵 ~8.0),所以随机文件也会被误判为\"可能是容器\"——上面第 4 行就是实例。
- 因此判定结论列的 Verdict 只是初步排序/筛查,最终结论必须由这两级给出:
uVCDetect(结构判定)
:魔数 + 卷结构特征,给出确认/排除——这也是为什么判定结论列要附加 结构排除 / VC/TC-…,用来纠正误报;
2. uVeraCrypt.VcVerify(密码验证)
:双 CRC-32 + 魔数,误判率 2⁻⁹⁶,唯一确定性结论。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论