安卓Apk反编译、smali文件修改、java转samli插件安装、重新打包

相关工具下载:安卓Apk反编译.zip
工具介绍:
apktool:用来反编译Apk、重新打包。官方下载地址:Apktool
dex2jar:将 classes.dex 转换为 .jar 文件。官方下载地址:dex2jar
jd-gui:查看 .jar 文件。官方下载地址:jd-gui
Auto-Sign:自动签名工具,将重新打包的 Apk 进行签名,如果不签名,无法安装使用。
反编译查看源码:
1、将需要反编译的 Apk 后缀名改为 .zip,并解压,如图:
2、将获取到的 classes.dex(它就是 java 文件编译再通过 dx 工具打包而成的)复制到解压出来的工具 dex2jar 文件夹内,在命令行下,进入到目录,输入命令:
d2j-dex2jar.bat classes.dex
运行结束后,在该目录下会生成一个 classes-dex2jar.jar 的文件,如图:
3、然后打开工具 jd-gui 文件夹里的 jd-gui.exe,用该工具打开生成的 classes-dex2jar.jar 文件,便可以看到源码。
反编译修改 smali 文件,进行重新打包:
1、将需要反编译的 Apk 文件放到 apktool 目录下,如图:
2、在命令行下,进入到目录,输入命令:
apktool d -f test.apk
-d 反编译 apk 文件
-s 不反编译 dex 文件,而是将其保留
-f 如果目标文件夹存在,则删除后重新反编译
3、由于不太懂 smali 语法的书写,所以我们直接写好 Java 代码用插件转换为 smali 语法。Android Studio 安装 Java 文件转 smali 文件插件 java2smali:



4、Java 文件转 smali 文件:


5、将上一步生成的 smali 文件覆盖到反编译后的 smali 文件夹对应的文件。


6、重新打包
apktool.bat b test
7、Apk签名,将打包好的 test.apk 拷贝到解压好的 auto-sign 文件夹下,并且重命名为 test.zip,执行命令:
java -jar signapk.jar testkey.x509.pem testkey.pk8 test.zip test_signed.zip
接下来将 test_signed.zip 更改后缀名为 apk 就可以使用了。