我尝试用加密资产(图片,文字等)打包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
如果您能够在第一个演示中获得原始资产,请告知我们。
如果您能够在第二个演示中获得原始资产,请告知我们。
任何关于更好的资产保护解决方案的建议都值得赞
答案 0 :(得分:1)
在不查看代码的情况下,任何混淆都不会100%隐藏“明确的”私钥。