`
407827531
  • 浏览: 1061538 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

apk反编译

阅读更多

推荐安卓开发神器(里面有各种UI特效和android代码库实例)

(一)找到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,我们可以通过上面提供的反编译技巧对比效果。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics