Jon*_*Jon 5 security android android-security
从这里 ( https://developer.android.com/preview/features#embedded-dex ),您可以看到 Android 引入了一项新功能,允许使用嵌入式 dex 直接从 APK 中运行代码。
我很好奇这会有什么用?
指南说:
This option can help prevent an attack if an attacker ever managed to
tamper with the locally compiled code on the device."
Run Code Online (Sandbox Code Playgroud)
我的理解是,当您的 APK 安装时,它会被编译并作为优化的 dex 文件存储在 dalvik 缓存中。dalvik 缓存只能由系统用户访问,因此除非手机已 root,否则攻击者无法访问它。
如果手机是 root 的(并且攻击者以 root 身份运行),那么嵌入的 dex 文件仍然可以被篡改,因为攻击者可以修改 apk 并使用他们自己的密钥重新签名。
谢谢!
正确的。通过启用此选项,您将强制系统使用 JIT 编译器直接从 .apk 文件运行 dex 代码(就像 Android 4.4 之前的 dalvik 上一样),而不是 AOT (5+) 或两者的组合 (4.4- 5)。您无法在不重新签名的情况下修改和运行 apk 内的 dex 代码,并且由于您没有原始签名密钥,因此您必须使用不同的密钥对其进行签名。作为应用程序开发人员,您可以实施代码检查 apk 签名和校验和,从而不允许运行已被篡改的 apk。另一方面,dalvik 缓存中拥有的是 .dex 文件的优化版本和预编译的 .oat 文件,这些文件未签名,因此具有 root 权限,您可以修改它们。
| 归档时间: |
|
| 查看次数: |
775 次 |
| 最近记录: |