加密Android代码?

时间:2012-11-06 01:54:16

标签: java android security encryption obfuscation

  

可能重复:
  How to encrypt a .jar file

我知道混淆,但它的作用只是让代码更难理解。它并没有真正加密代码。有没有办法加密Android代码?或者有什么替代方法可以在反编译时使代码更难以恢复?

我问这个问题,知道我能找到的是否可行。现在,我的脑海中建议加密代码是不可能的,因为如果加密代码,Dalvik也无法理解代码并运行代码。但我对此并不十分肯定。我可能不知道什么。

请发布您对此的看法或是否有任何建议?此外,请考虑一种财务应用程序,其中访问人类可读代码意味着能够理解后端正在进行的财务流程的流程。谢谢!

2 个答案:

答案 0 :(得分:2)

通过隐藏代码,插入虚拟指令等,使标准DEX反编译工具的生活变得更加艰难。这几乎都是研究阶段的ATM,但你可以在网上找到一些关于它的论文,有些样本工具。

ProGuard的作者还有DexGuard(不是免费的)可以对字符串进行加密(标准混淆不会),以便在反编译代码中搜索更难的东西。我没有亲自使用它,但你可能想尝试一下。

最终,为了能够运行您需要解密/解密/无论如何,您可以将其提供给VM。如果您可以完全控制设备(即root权限和物理访问权限),则可以转储内存,在系统库中引入挂钩等,并获取实际的可运行代码。正如其他人所建议的那样,如果您有真正敏感的代码,它应该存在于您的服务器上。

答案 1 :(得分:1)

根据定义,机器必须能够读取您的代码。因此......拥有机器的任何人都可以阅读您的代码。

唯一的替代方案是强迫用户联系您的第三方网站并以某种方式从您那里获取信息。