首先声明一下,作为有正义感、有社会责任心的博主,立场必须坚定,旗帜必须鲜明,请勿通过反编译APK做一些违法乱纪的事儿
好了,声明结束,正式开始叨逼叨一下如何反编译APK。
我猜看到这篇文章的主儿应该都是IT从业人员,并且受到各方面因素的影响,无论是领导交代的任务还是自己的兴趣爱好想了解关于反编译的技能,看篇帖子你能学到什么?嘿嘿,能学到非常有用的技能。
你或许看到一些app,想要测试一下下人家的接口,所以想方设法扒接口,扒到接口之后,盗用人家的接口以及数据,然后自己做一个app,然后....然后....然后作为个人开发者你也上不了应用市场,因为要求软著以及企业账号....但是你可以上一些野鸡市场,野鸡市场还是很多的,比如那谁,那谁和那谁.....
在这个数据就是工业石油的时代,有了数据项目就有了血液....
说了这么多,你知道我想说什么吗? 试试吧,后浪,一切皆有可能
跟上我的脚步,进入正题
反编译apk就是查看 Android dex 文件的源码,然后分析出自己想要的信息
工欲善其事,必先利其器,所以我们先看看工具 apktool,并进行环境变量配置,下载链接如下:
https://ibotpeaches.github.io/Apktool/install/
见图如面,根据下图步奏,下载apktool相关文件
![a2f92aee1a0b28013181e2e28e35dde0.png](https://i-blog.csdnimg.cn/blog_migrate/f48ca2bad4af74d94cef93de9f2d2414.jpeg)
1.png
首先在磁盘上创建apktool文件夹,用于存放apktool相关文件
第一步:下载apktool.bat, 截图中告诉你了"Right Click,Save Link As apktool.bat",存放到apktool文件夹下,特别注意如果后缀名不是".bat",一定要改为 “apktool.bat”
第二步:下载apktool.jar ,截图中告诉你了"find newest here",尽量下载最新版本,因为如果是老版本可能会导致反编译出问题,这里我使用的是2.3.3版本,下载后存放到apktool文件夹下
第三步:截图中又告诉你了“Rename downloaded jar to apktool.jar” ,因为如果没问题,应该都能看得懂,改名呗,我下载apktool_2.3.3.jar改名为apktool.jar
第四步,截图中告诉我们说,放到c:盘下,配置环境变量,我们放到了apktool文件夹下,同样也需要配置环境变量
上图,见图如面:
![d2680829c5c6b9ed12d10d46c81a02bc.png](https://i-blog.csdnimg.cn/blog_migrate/187e0972783a33c94dda5293a4dacce2.jpeg)
2.png
对了,看官知道如何配置环境变量吧,作为一个IT从业者,说不会可是会丢人的哦,没事儿,不会的话,加QQ群(578060039)问我,我不使劲儿嘲笑你,就嘲笑你一会儿
至此,我们的apktool工具就配置好了,有了金刚钻,咱就能揽瓷器活喽
下面我们进行反编译的实战,第一步找个apk,执行下图命令:
![0aac8af5c07dcfa68779a47a0e5b746d.png](https://i-blog.csdnimg.cn/blog_migrate/165a27547cea6f2028f45954b588fedc.jpeg)
4.png
命令执行完之后我们发现,apktool目录下多了一个名为aaa的文件夹,里面我们就可以看到xml文件、AndroidManifest.xml和图片等资源文件,见下图
![9d7d53603c991ce109d96bc32be9d337.png](https://i-blog.csdnimg.cn/blog_migrate/e53eda655ebd615faf1807931891170f.png)
4-2.png
其中文件夹smali,这里面其实就java代码,只不过不是jar形式的,但是我们要分析的是java代码,这怎么搞?其实也很简单,我们接着往下看。
我们还以aaa.apk为例,比如下图中的aaa.apk,第一步,复制一份,重命名为aaa.zip, 然后解压,见下图:
![46e3feb73785785de3aa10c78ab89fd3.png](https://i-blog.csdnimg.cn/blog_migrate/b3681e9c489b53b722eac4e435cb1973.jpeg)
3.jpg
第二步:打开解压后的aaa文件,如下图
![9d725b07010d1394315508cbb2651943.png](https://i-blog.csdnimg.cn/blog_migrate/647a2f55f5d9e89f0460c51bc1eae97d.jpeg)
5.png
第三步,分析 dex文件,上图中我们看到有两个dex文件,classes.dex 和 classes2.dex ,这是因为进行了分包操作,这俩货就是 java的源码了,但是我们如何查看呢,这里还需要一个工具叫 dex2jar ,顾名思义就是dex转jar,
第四步,下载 dex2jar,下载链接哪里的有?下面的有,下载后是zip文件,拷贝到apktool文件夹下,解压
https://bitbucket.org/pxb1988/dex2jar/downloads/
第五步,将classes.dex 和 classes2.dex 拷贝到 dex2jar-2.0目录下,cmd 命令行,切换到 E:apktoolsdex2jar-2.0 ,输入命令:d2j-dex2jar.bat classes.dex 加下图:
![6c0e247607965165084afccbb934a28a.png](https://i-blog.csdnimg.cn/blog_migrate/cd7cf193829efc88e10f0e45df3682d1.jpeg)
7.jpg
第六步,在第五步中我们已经获取到了jar包,接下来就是查看jar包了,那如何查看呢?你真聪明,就是用jd-gui 工具,打完收工,哈哈哈
都说到这儿,当然有始有终,哪里下载jd-gui 工具,这里的下载,然后解压,然后打开jar,见下图
https://github.com/java-decompiler/jd-gui/releases/
![b12fe59c7285a9f7dcfa24d218d70937.png](https://i-blog.csdnimg.cn/blog_migrate/ee52176e3f38f006a346cfc9270bd5c0.png)
8.png