通过可执行文件分类实现抗混淆搜索
软件工程
2018-06-12 v2 密码学与安全
摘要
Android 应用发布前通常会被混淆,导致难以分析其是否存在恶意软件或侵犯知识产权。混淆器可能通过重命名变量和/或修改程序结构来隐藏代码的真实意图。对于开发者高效分析而言,搜索与某混淆应用相关的可执行文件具有挑战性。以往抗混淆搜索方法依赖于应用中某些未被混淆破坏的结构部分作为地标。例如,一些已有方法假定标识符间的结构关系不会被混淆器打破;另一些则假定控制流图保持其结构。这两种方法都易被有意的混淆器轻易击败。我们提出一种新方法 Macneto,利用深度学习与指令上的主成分来搜索与混淆可执行文件相关的程序。Macneto 对混淆器可能执行的修改类型所作假设很少。我们表明,对于由改变控制流的最先进混淆器混淆的可执行文件,它具有很高的搜索精度。此外,我们还展示了 Macneto 帮助开发者理解可执行文件的潜力:Macneto 为混淆可执行文件推断关键词(来自相关的未混淆程序)。
引用
@article{arxiv.1806.02432,
title = {Obfuscation Resilient Search through Executable Classification},
author = {Fang-Hsiang Su and Jonathan Bell and Gail Kaiser and Baishakhi Ray},
journal= {arXiv preprint arXiv:1806.02432},
year = {2018}
}
备注
MAPL, 2018 (Workshop co-located with PLDI 2018)