1,关于apk
想要做android开发,要做的一个事情就是学习别人的代码。
先研究下别人的代码,看看咋写的有啥漏洞。学开源的项目也行。
开源项目不如真实的项目有代表性。同时开能看看别人的服务器接口是咋设计的。
比如你弄到一个apk文件。
apk首先是一个压缩文件,只要解压缩就好了。
2,解开xxx.apk
假设在服务器上面直接解压缩就行了。
unzip /data/app/xxx.apk -d /data/app/xxx
里面会有几个文件
AndroidManifest.xml classes.dex resources.arsc META-INF res
其中classes.dex 就是相当于jar的文件了
3,解开dex文件
需要用到一个工具,反编译dex 工具
gitlab项目:
https://github.com/pxb1988/dex2jar
https://sourceforge.net/projects/dex2jar/?source=typ_redirect
工具可以在windows 和 linux 上面使用,也是java写的。
比如在linux上面:
sh ./dex2jar-2.0/d2j-dex2jar.sh /data/app/classes.dex -o /data/app/classes-dex2jar.jar
然后就转换成jar文件了。
4,使用jad反编译
jad是命令行的:
http://varaneckas.com/jad/
unzip /data/app/classes-dex2jar.jar -d /data/app/classes
-o参数,设置输出文件目录和名称:
jad -r -ff -d src -s java classes/**/*.class
然后src里面就是源代码了。
5,最简单的方法
使用jd-gui直接打开
http://jd.benow.ca/
要什么自行车啊,直接就可以打开这个jar文件。
下载执行文件,直接执行就行。
灰常简单。
4,写完才知道还有一步到位的工具
https://github.com/skylot/jadx
直接有人写好了的工具,一步到位,直接分析apk文件的。
省了不少事情。超级赞。
5,总结
android反编译起来还是非常容易的,尤其是java还有反编译工具。
看起来就更容易了,jd-gui还是非常的好用的。gui的界面使用起来也是很方便的。
但是如果app做了混淆了,并且,app做了加壳把重要的代码,算法都放到了so文件里面
这个使用需要使用其他办法解决了。
一般要是研究些小应用的app他们是啥也没有做的,学习起来还是非常方便的。
本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/53025024 未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys