MASTG-TECH-0021: 信息收集 - API 使用

Android 平台为应用程序中常用的功能提供了许多内置库,例如密码学、蓝牙、NFC、网络或位置库。确定这些库在应用程序中的存在可以为我们提供有关其性质的宝贵信息。

例如,如果应用程序导入 javax.crypto.Cipher,则表明该应用程序将执行某种加密操作。幸运的是,加密调用本质上非常标准,即,它们需要以特定顺序调用才能正确工作,此知识在分析加密 API 时很有帮助。例如,通过查找 Cipher.getInstance 函数,我们可以确定正在使用的加密算法。通过这种方法,我们可以直接转移到分析加密资产,这些资产在应用程序中通常非常关键。有关如何分析 Android 加密 API 的更多信息,请参见“Android 加密 API”部分。

类似地,上述方法可用于确定应用程序在何处以及如何使用 NFC。例如,使用基于主机的卡模拟执行数字支付的应用程序必须使用 android.nfc 包。因此,NFC API 分析的一个好的起点是查阅 Android 开发者文档,以获得一些想法并开始搜索关键函数,例如来自 android.nfc.cardemulation.HostApduService 类的 processCommandApdu