我试图用加密资产(图像、文本等)打包 apk。
当它在 Android 上运行时,资产将被解密然后显示(当然我在源代码中硬编码了解密密钥)。
我猜:只要源代码受到保护,那么解密密钥也将受到保护,这意味着资产最终受到保护?
问题:
1. 如果使用ProGuard对apk 进行混淆,解密密钥是否安全?
2.如果我在JNI(C++)中编写解密密钥并让JNI进行解密,解密密钥是否更安全?
我还制作了 2 个带有加密资产的演示 Android 应用程序,您可以尝试破解它们。
第一个使用混淆的 Java 使用 AES 密钥(用 Java 硬编码)解密资产:
https ://drive.google.com/file/d/0B9O3ChlSQJL1dVZUZmFtWlRyMXc/edit?usp=sharing
第二个使用JNI使用 AES 密钥(在 JNI 中硬编码)解密资产:
https ://drive.google.com/file/d/0B9O3ChlSQJL1UWU0VlprcXdVUjg/edit?usp=sharing
如果您能够在第一个演示中获得原始资产,请告诉我。
如果您能够在第二个演示中获得原始资产,也请告诉我。
任何关于更好的资产保护解决方案的建议都值得赞赏!