中文

脱壳还是不脱壳:与加壳程序共存以实现安卓应用的动态分析

密码学与安全 2025-09-23 v1 操作系统

摘要

安卓应用因其流行性和被信任处理高度敏感数据,已成为应用修改者和模仿者的重要目标。另一方面,加壳程序通过在应用中嵌入各种反分析技术来保护应用免受篡改。同时,加壳程序也隐藏了某些可能违背用户利益的行为,并且可能被恶意软件滥用以实现隐蔽性。安全从业者通常尝试通过钩子(例如 Frida)或调试技术在运行时捕获不良行为,但这些技术受到加壳程序的严重影响。脱壳一直是社区为解决此问题所做的持续努力,但由于新兴商业加壳程序的出现,我们的研究表明,目前没有脱壳工具仍然有效,并且它们不适合此目的,因为脱壳后的应用无法再运行。我们首先使用一个包含 12,341 个应用的真实世界数据集,对安卓加壳程序进行了首次大规模流行度分析,以查明实际有多少比例的安卓应用被加壳,以及动态分析在多大程度上受到阻碍。然后,我们提出了 Purifire,一个规避引擎,用于绕过加壳程序的反分析技术,并在不脱壳的情况下对加壳应用进行动态分析。Purifire 基于 eBPF,这是一种低级内核特性,它为用户空间应用提供了可观测性和不可见性,以执行定义的规避规则,同时保持低调。我们的评估表明,Purifire 能够绕过加壳程序的反分析检查,更重要的是,对于之前受加壳程序影响的研究工作,我们观察到了显著的改进(例如,检测到的项目数量大幅增加,如设备指纹)。

关键词

引用

@article{arxiv.2509.16340,
  title  = {To Unpack or Not to Unpack: Living with Packers to Enable Dynamic Analysis of Android Apps},
  author = {Mohammad Hossein Asghari and Lianying Zhao},
  journal= {arXiv preprint arXiv:2509.16340},
  year   = {2025}
}