这是我第一次写这类技术文章,以前一直是看别人写的。从最早在CSDN上看大神博主的文章,到现在每天早上第一时间浏览简书上关注的作者的推送文章,就像一些作者讲的,其实当自己去写去总结才会发现自身的不足,所以写博客对于程序员来讲是很重要的。这是个很好的习惯,希望自己能坚持下来。
其实最早自己在做android的时候就有尝试使用过这些反编译工具,目的只是简单的看看那些大厂使用了哪些开源库,跟咱的app有啥不一样。首先被拿来当小白鼠的当然是鹅厂的宇宙第一app-微信。反编译后发现其实他们也用了一些很流行的开源库,遇到不知道的立马去搜索,当时的反编译仅限于此,后来在工作和学习中就再也没有尝试过。这次是偶然间使用北京公积金查询的app的时候看到有个查询公积金的进度条动画很好玩,当时想的是自己写个自定义view来模仿一下,后来突发奇想,我反编译看看是怎么实现的,照着copy一份就好了啊,说干就干,咱们来看看反编译要做那些工作。
以前用的是windows笔记本,15年换成MBP了,其实大同小异,下载不同平台下的对应版本就可以了,其他的就是注意路径问题就可以了。
参考博文:MAC笔记本下Android 反编译apk文件最新版本
第一步:使用apktool获取资源文件
最新版本:JD-UI最新版本apktool_2.2.4.jar 官网下载地址
原文安装教程
Mac OS X:
Download Macwrapper script(Right click, Save Link Asapktool)
Download apktool-2 (find newest here)
Rename downloaded jar toapktool.jar
Move both files (apktool.jar&apktool) to/usr/local/bin(root needed)
Make sure both files are executable (chmod +x)
Try runningapktoolvia cli
1.下载wrapper script,右键存储为...命名apktool
2.下载apktool_2.2.4.jar,命名为apktool.jar
3.将以上两个文件拷贝到/usr/local/bin,这样在任何目录都可以执行apktool这个命令
4.进入cd /usr/local/bin目录,执行chmod +x apktool
这个时候就可以使用apktool这个工具了,terminal下执行命令: apktool d apk的全路径,这样在/usr/local/bin目录下你就可以查找到和你的apk名字一样的文件夹了,打开看看xml是不是能看到了。
第二步:使用dex2jar获取源码
最新版本:dex2jar-2.0.zip 官网地址
1.下载解压,解压后cd 解压的目录
2.运行chmod +x dex2jar.sh
好了可以使用dex2jar这个命令了,terminal下执行./dex2jar.sh apk路径,执行成功当前apk的目录下会有一个jar文件,第二部完毕。
第三步:使用JD-JUI工具查看源码
最新版本:jd-gui最新版本 官网地址
打开第二步获取到的jar文件,ok,现在就可以看到反编译后的源码了。
后话:有的应用安全意识比较薄弱代码,未做加壳混淆这样基本上反编译出来就是源码,混淆之后我们去分析就比较麻烦了。下一篇我将分析北京公积金的查询公积金的进度动画,实现不写一行代码就拿来用,是不是有点期待呢😃