5

Google建议并在ProGuard中进行代码混淆处理。然而它自带的默认配置似乎很小,可以在一定程度上进行反向工程。大多数希望进行逆向工程的人并不是真的在寻找细节代码,但可能会提取逻辑。是否有任何指导方针,以便更有效地配置ProGuard?(有些东西在最小化Javascript的范围内会很好)。Android对代码以及资源的混淆处理

其次,有些工具可以提取Manifest以及资源文件。它们中没有混淆的程度。这些当然可以揭示一些事情。有什么方法可以避免这种情况发生?

+0

模糊处理实际上只保护程序内部的自引用私有世界中的任何内容,从而弄清楚某些被模糊处理的代码块是否是该应用程序研究特有的问题。与android平台的接口是标准的,所以即使他们被混淆,有人会很快写一个工具来反转(看一个并行的例子,优化的DEX)你可以加密你的资源,但你必须解密任何你想要的显示或播放,此时修改后的平台可以获取解密版本。 – 2011-04-14 16:49:19

回答

7

对于第一部分,我建议你检查这个问题:Android Game Keeps Getting Hacked。它没有直接解决ProGuard问题,但它确实为您提供了一些关于如何减少盗版的想法。

对于第二部分,恐怕不是,这是不可能的,因为这些都是纯XML文件。你可以做的是减少资源的使用并直接在java中创建逻辑。这会降低你的代码的曝光方式有三种:

(1)明显的,它显示出较低的易于读取XML代码

(2)它创建smali更长的文件,这是不容易的首先要考虑的是:考虑到smali文件中的变量没有名称,而是数字,并且被重复使用了好几次,这使得它们更难理解。 V1可以先是一个TextView,然后是一个int,然后是一个私有的静态方法。 (3)它减少了使用public.xml中的表很容易在smali文件上搜索的十六进制ID的使用。

当我将TouchWiz框架移植到一些自定义ROM中时,我甚至制作了一个小型的Java应用程序来自动识别ID(xda-developers帖子是here),所以你可以想象如何轻松跟随它们。

+0

感谢您的宝贵意见 – advantej 2011-04-16 05:12:06