Android反编译初探:MAC下的反编译

前言:突然看见有关反编译的文章,便学习一下

一、工具:

https://ibotpeaches.github.io/Apktool/
http://jd.benow.ca/
https://sourceforge.net/projects/dex2jar/

分别是
apktool主要用户反编译和打包;
JD-GUI 主要用于对.class文件展示为源码(比如jar文件)
dex2jar 主要用于将dex文件转化为jar文件

二、步骤:

1.先新建一个sh脚本 apktool.sh
Mac下创建一个文件是比较麻烦的,这里我们可以利用markdown进行创建,保存文档时把后缀改为.sh
2.接着,把下载好的apktool_2.x.x.jar改名为apktool.jar;把apktool.jarapktool.sh放入/usr/local/bin/文件夹下(如果不存在则创建一个)
3.终端运行
先进入目录:cd /usr/local/bin
chmod a+x apktool.sh
chmod a+x apktool.jar
增加这两个文件可执行权限,chmod a+x file
(命令使文件可读写)
4.最后执行反编译语句
apktool.sh d xxx.apk
便可以在当前目录下生成一个xxx(app名称)文件夹

里面的smali文件夹里便是app的.java文件,可是阅读反编译的smali代码是一件特别繁琐的事情,我们可以使用JAVA反编译工具

1.dex2jar生成jar文件
1.将apk文件后缀名直接改为.zip,并解压。得到其中的classes.dex文件 ,它就是java源代码经过编译再通过dx工具打包而成的。
2.将classes.dex文件复制到dex2jar所在的文件夹。
3.命令行下定位到dex2jar目录,运行
sh dex2jar.sh classes.dex

便可以发现目录下多了一个.jar文件

2.使用jd-gui查看生成的jar包
打开下载下来的jd-gui文件夹

打开JD-GUI,把jar文件拖入

这里写图片描述

具体用途可以参考鸿神的博客:
https://blog.csdn.net/lmj623565791/article/details/53370414

个人认为自己开发学习时可以用反编译来借用别人好看的UI和代码
(但是一般都会有反反编译措施)

猜你喜欢

转载自blog.csdn.net/weixin_38364803/article/details/79944063