现在的位置: 首页 > 综合 > 正文

apk反编译

2018年04月04日 ⁄ 综合 ⁄ 共 1649字 ⁄ 字号 评论关闭

(一)找到Android软件安装包中的class.dex 

1.把你要进行反编译的apk文件的后缀改名为.zip,然后解压缩其中的class.dex文件,它就是java文件编译再通过dx工具打包成的。 

工具准备: 
1)把dex文件反编译为jar文件的工具。(dex2jar) 

http://code.google.com/p/dex2jar/downloads/list 

2)把jar反编译为java的工具。(JD-GUI) 

http://java.decompiler.free.fr/?q=jdgui 

反编译步骤: 
1)把class.dex拷贝到dex2jar.bat所在目录。运行dex2jar.bat classes.dex,生成classes.dex.dex2jar.jar。 
2)运行JD-GUI工具(它是绿色无须安装的),打开上面的jar文件,即可看到源代码。 
注意:这里有一点要提醒大家,一定要对DOS懂一些基本的常识,运行dex2jar.bat classes.dex的时候,前提是要找到dex2jar.bat所在的路径,然后在其下面进行运行,才会在该目录下出现classes.dex.dex2jar.jar这个文件,然后打开JD-GUI,加载这个jar文件就可以看到类文件的源码了 
(二)查看apk文件中,除了上面第一步已经实现了的类文件源码之后的,其它配置文件的源码 
1.去APKTool 的网站上下载一个APKTool.zip的压缩文件,然后对其进行解压<这里也有一个前提,保你的电脑已经安装了JDK1.6(JRE1.6也可以),而且安装了一个优秀的编辑软件(推荐UltraEdit)> 
2.把你的apk文件(这里以ColorNote.apk为例)放到APKTool所在目录,然后命令行进入APKTool目录,执行下面的命令: 
apktool  d  ColorNote.apk  ColorNote 
这句命令的意思是,对ColorNote.apk这个程序进行反编译,获得的文件放在当前目录下的ColorNote目录中。正常反编译的话,能看到下面的提示: 
I: Baksmaling… 
I: Decoding resource table… 
I: Decoding resources… 
I: Copying assets and libs… 
反编译完成,会在APKTool的目录下面,出现一个名叫ColorNote的目录! 
3.用UltraEdit打开ColorNote的目录下的配置文件,例如:AndroidManifest.xml,打开看看,就会看到我们所需要的 
4.此外还有一些别的,我们也可以对其汉化,然后进行打包等等,在这里就不进行赘述了,因为这些已经足够我们,通过研究别人的代码,来了解他们的思路,进而来有助于我们自己对android的开发。 

apktool b ColorNote 
这条命令是告诉APKTool,把这个ColorNote目录里的东西编译打包成APK程序 
I: Checking whether sources has changed… 
I: Smaling… 
I: Checking whether resources has changed… 
I: Building resources… 
I: Building apk file… 
生成的APK程序在哪里呢?在ColorNote\Dist目录里面,名字是out.apk 

ps:1.dex2jar可以反编译出源代码,apktool可以反编译出xml配置文件,组合起来就是一套完整的工程 
如何防止反编译: 
可以使用proguard进行混淆编译,Eclipse已经集成了proguard,可以在工程目录中看到多了个proguard.cfg,系统默认是没有进行混淆编译的,如果需要添加此功能,只要在default.properties中添加一句话"proguard.config=proguard.cfg",然后导出apk,我们可以通过上面提供的反编译技巧对比效果。

抱歉!评论已关闭.