# Android 应用的统计式反混淆

> DeGuard 逆转 Android APK 中的布局混淆，为被 ProGuard 重命名的字段、方法、类和包预测原始名称。它基于 Soot 将应用表示为程序元素之间的依赖图，并保持 Android API 及其他未混淆名称不变；随后在从 1,684 个 F-Droid 应用学习的条件随机场上借助 Nice2Predict 进行 MAP 推断，并以约束保证重命名后的 APK 语义等价。在 100 个留出的、经 ProGuard 混淆的 F-Droid 应用上，与原始名称完全相同的比例从 13.3% 提升至 79.1%，第三方库预测的精确率为 91.3%、召回率为 91.0%。

- 作者：Benjamin Bichsel; Veselin Raychev; Petar Tsankov; Martin Vechev
- 原标题：Statistical Deobfuscation of Android Applications
- 发表载体：ACM CCS 2016
- 发表状态：会议论文
- 出版／提交日期：2016 年 10 月 24 日
- 日期依据：ACM 提交的 Crossref 元数据将纸质与在线出版日期均记为 2016-10-24。该日期恰为 10 月 24—28 日会议的首日；本条目依据出版方记录，而非根据会议日程推定。
- DOI：10.1145/2976749.2978422
- 来源复核于：2026-10-18
- 收录于：2026-10-19
- 原始论文：<https://dl.acm.org/doi/10.1145/2976749.2978422>
- PDF：<https://files.sri.inf.ethz.ch/website/papers/deguard.pdf>
- 项目：<https://www.sri.inf.ethz.ch/deguard>
- BibTeX：<https://awesomerea.org/papers/citations/paper-deguard.bib>
- 目录页面：<https://awesomerea.org/zh/papers/paper-deguard/>
- 记录 JSON：<https://awesomerea.org/papers/paper-deguard/record.json>
- 英文版：[English](https://awesomerea.org/papers/paper-deguard/index.md)

## 研究范围与局限

仅处理布局（标识符）混淆。数据、控制流与密码学混淆、自定义字符串加密、反射以及基于 goto 的代码重排均不在逆转范围内；论文指出，其检查的大多数恶意样本同时使用了这些技术。基准为 100 个良性开源 F-Droid 应用，通过启用 ProGuard 且不修改其规则进行混淆，并以与原始名称完全一致作为评分标准，因此语义相近的名称也计为错误；被 ProGuard 删除的元素不计分。在其他混淆器或恶意软件上的准确率可能较低。第三方库依据包名启发式规则识别，共涵盖 133 个库，训练应用也可能导入相同的库。针对 49 个恶意软件家族的研究给出 Base64 解码器、位置信息处理等人工检查示例，未报告精确率。

## 与本合集的关联

补充面向混淆 Android 安装包的学习式标识符恢复方法，与应用部分的界面重建论文及本文献目录中其他二进制符号恢复研究互补。

## 发表与复核说明

ACM 提交的 Crossref 元数据与 ETH 托管的作者版 PDF 在标题、四位作者顺序及 CCS ’16 DOI 上一致；Crossref 给出页码 343–355。论文与 SRI 项目页面将 http://apk-deguard.com 列为公开的 DeGuard 服务；该地址在 2026-10-18 跳转至 HTTPS 后无响应。未找到 DeGuard 源码仓库。项目页面说明 DeGuard 构建于开源的 Nice2Predict 框架之上。

## 一手来源

1. <https://dl.acm.org/doi/10.1145/2976749.2978422>
2. <https://api.crossref.org/works/10.1145/2976749.2978422>
3. <https://files.sri.inf.ethz.ch/website/papers/deguard.pdf>
4. <https://www.sri.inf.ethz.ch/deguard>

## 关于此条目

已依据论文及一手来源复核。请通过原始论文或 BibTeX 引用原作者。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
