android反编译

来源:互联网 发布:阿里云免费 编辑:程序博客网 时间:2024/06/07 22:50

有的时候需要反编译别人的apk,看看别人是怎么实现的,另外还可以获取到很多素材,不要再自己去弄图片了,下面就分享下最近自己反编译的学习记录。

1.下载反编译工具Apktool

https://bitbucket.org/iBotPeaches/apktool/downloads

关于Apktool工具的介绍,可以自己看看Apktool官网的介绍

Apktool下载下来后是一个jar包:apktool_2.0.1.jar
java -jar apktool_2.0.1.jar d <file.apk>  <dir>
java -jar apktool_2.0.1.jar d  -f <file.apk>  <dir>//如果dir目录已存在会强行覆盖

eg:java -jar apktool_2.0.1.jar d app-debug.apk  //把apk反编译到当前目录
解压成功后就可以看到apk里的Mainfest,布局,图片资然等文件。
当然,如果你对smali文件有一定了解的话,可以通过修改smali文件,从而达到改变原有程序行为的目地,然后再利用Apktool重新打包生成apk文件
java -jar apktool_2.0.1.jar b <file>//后面的参数就是上面file.apk反编译生成的文件名

eg:java -jar apktool_2.0.1.jar b app-debug

2.如果想看到apk的java代码话,需要把class文件反编译成.java文件

下载dex2jar工具,关于工具的介绍可以自己查看dex2jar的介绍

利用下载好的dex2jar-2.0工具把apk里的class.dex文件弄成classes_dex2jar.jar文件,其中class.dex文件可以直接从apk文件里解压出来,把后缀apk换成zip直接解压就行
在windows里直接把class.dex用d2j-dex2jar.bat打开就行,在Linux上用下面命令

./d2j-dex2jar.sh classes.dex 
如果遇到下面的错误,就需要把这两个文件的权限修改下 
./d2j-dex2jar.sh: 36: ./d2j-dex2jar.sh: ./d2j_invoke.sh: Permission denied
chmod 777 d2j_invoke.sh d2j-dex2jar.sh

把apk里的class.dex文件转换成classes-dex2jar.jar后,利用JD-GUI文件查看就行了,JD-GUI下载地址

http://jd.benow.ca/

0 0