方法二:反编译 apk 生成程序的源代码和图片、 XML 配置、语言资源等文件。
但是android项目中xml文件如何进行反编译呢?如果不进行反编译,那么项目中的xml(布局文件、资源文件)文件都是乱码,当然也有针对性解决该问题的方法。 需要工具AXMLPrinter2.jar(http://code.google.com/p/android4me/downloads/list)。具体的使用方法,与上面的差不多,将它放到android-sdk\tools文件夹中,然后运行cmd,进入tools目录,运行java -jar AXMLPrinter2.jar main.xml > main.txt; 这样android项目中相关的文件基本上都经过了反编译操作,可能有些人用jd-gui来反编译时候是在jd-gui软件中进行代码查看的,当然,用eclipse做过java开发的人员都知道如果在eclipse中直接打开.class文件,这里我也介绍几种方式,便于android开发者使用,方法如下:
1.从http://www.kpdus.com/jad.html#download地址下载最新的jad;
2.从http://nchc.dl.sourceforge.net/s ... jadclipse.jar地址下载jadclipse.jar,拷贝到eclipse的plugins目录下;
3.启动或重起eclipse,修改window -> Preferences -> Java -> JadClipse 下的 Path to decompiler jad目录\jad.exe;
4.Windows -> Perference -> General -> Editors -> File Associations中修改“*.class”默认关联的编辑器为“JadClipse Class File Viewer”
之后在java类里按住ctrl点击类就可以看到它jad反编译后的源带码了;
如果发现安装了没有效果,可以删除eclipse主目录下的\configuration\org.eclipse.update后,再执行eclipse -clean试试 然后就是介绍如何放置反编译了 android基于java的,而java反编译工具很强悍,所以对正常apk应用程序基本上可以做到100%反编译还原。 因此开发人员如果不准备开源自己的项目就需要知道怎样防止反编译和反编译他人的项目来学习。 2.3版本以上在eclipse自动生成的default.properties文件中加上一句“proguard.config=proguard.cfg”可以对代码进行混淆,反编译后是很难看懂的。 2.3之前的SDK版本也没关系,把上面的proguard.cfg文件复制一份放到项目中,然后进行相同的操作即可。 有些应用反编译后java代码用jd-ui根本都无法打开,连混淆的代码都看不到的,本人尝试多次都做不到,希望知道的告知下怎么处理的。 注意:上面的功能只是把java代码混淆了,xml和资源文件、图片并没有混淆,有些游戏应用图片比较重要需要转换成dat文件 再加上自己的加密解密算法还原。 另外加了混淆功能后还有压缩的功能,混淆后的apk比原来的小(具体比例看你的代码重复量了)
|