ASTANA:使用程序切片的Android应用程序实用字符串去混淆
ASTANA: Practical String Deobfuscation for Android Applications Using Program Slicing
摘要:
Android开发人员广泛使用软件混淆来保护其应用程序的源代码免受对抗性逆向工程的影响。一种特定类型的混淆,字符串混淆,将源代码中所有字符串文字的内容转换为不可解释的文本,并插入逻辑以在运行时对这些字符串文字进行去混淆。在这项工作中,我们证明了字符串混淆是很容易可逆的。我们提出ASTANA,Android应用程序的实用工具,以恢复人类可读的内容从混淆字符串字面量。ASTANA对混淆逻辑或应用程序结构做了最少的假设。关键思想是为特定(模糊)字符串字面量执行去模糊逻辑,这会产生原始字符串值。为了获得相关的去混淆逻辑,我们提出了一个轻量级的乐观算法,基于程序切片技术。通过对100个流行的真实金融应用的实验评估,我们证明了ASTANA的实用性。我们验证了我们的去混淆工具的正确性,并提供了由开发人员评估的Android应用程序的字符串混淆器的行为的见解。
英文摘要:
Software obfuscation is widely used by Android developers to protect the source code of their applications against adversarial reverse-engineering efforts. A specific type of obfuscation, string obfuscation, transforms the content of all string literals in the source code to non-interpretable text and inserts logic to deobfuscate these string literals at runtime. In this work, we demonstrate that string obfuscation is easily reversible. We present ASTANA, a practical tool for Android applications to recovers the human-readable content from obfuscated string literals. ASTANA makes minimal assumptions about the obfuscation logic or application structure. The key idea is to execute the deobfuscation logic for a specific (obfuscated) string literal, which yields the original string value. To obtain the relevant deobfuscation logic, we present a lightweight and optimistic algorithm, based on program slicing techniques. By an experimental evaluation with 100 popular real-world financial applications, we demonstrate the practicality of ASTANA. We verify the correctness of our deobfuscation tool and provide insights in the behaviour of string obfuscators applied by the developers of the evaluated Android applications.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。