我正在逆向工程一个非常流行的 Android 应用程序。
他们对 APK 执行某种类型的签名验证,但是他们没有:
- 打电话
PackageManager.signatures - 打电话
PackageInfo.signingInfo - 实例化一个
JarFile或JarEntry - 调用原生函数(有一个带有签名验证码的原生库,但它没有
JNI_onLoad并且不调用该函数) - 直接访问
META-INF目录 - 利用安全网
我已经通过对 APK 进行签名而不修改任何文件来验证 APK 正在执行签名验证而不是任何其他类型的篡改检测。
我唯一能想到的是,APK 正在使用反射来调用其签名被加密或编码的方法。