一、介绍
最近对逆向感兴趣,也一直在学习逆向相关的知识,刚好看到下面这篇文章,刚好学习学习APKTool,对于APKTool的介绍和一些知识看下面的文章就够了,这里我只是展示下我的实际操作。
Android 逆向入门保姆级教程 - 掘金 (juejin.cn)
二、操作
2.1 创建签名
密码我这里填的都是123456
2.2 新建Project
新建Project,并用上面的签名打个release包,并安装到手机上,release包我这里是ApkToolTest.apk
2.3 反编译apk
将ApkToolTest.apk放到与apktool_2.8.1.jar同目录下
执行反编译命令,前提是已经配置好了Java环境
#xxx为路径,由于我是当前目录打开的命令窗口,所以这里是 .\
java -jar xxx/apktool-2.8.1.jar d xxx/ApkToolTest.apk -o xxx/test
完成后可以看到生成有test目录,里面就有我们所反编译的内容
2.4 回编译apk
在test\res\layout目录下找到activity_main.xml文件
用记事本打开,将其中的 Hello World!修改为 APK_Tool,然后保存并退出
接着我们输入回编译的命令
java -jar xxx/apktool-2.8.1.jar b xxx/test -o xxx/ApkToolTest2.apk
接着我们还要给这个回编译生成的apk打上签名才能让手机安装
将ApkToolTest2.apk移动至Android的SDK\build-tools目录下(找到自己安装的Android SDK目录)
选择 apksigner 来签名,签名命令如下:
java -jar sdk/build-tools/30.0.3/lib/apksigner.jar sign --ks "密钥库文件路径" --ks-pass pass:"密钥库密码" --ks-key-alias "密钥别名" --key-pass pass:"密钥别名密码" --out 签名后输出的文件.apk 需要被签名的文件.apk
执行后可以看到生成了release.apk,这个就是我们打上签名的ApkToolTest2.apk
这时候,我们需要将原来的apk给卸载掉,安装这个回编译的包(release.apk),安装后可以看到Hello World!变成了APK_Tool,至此大功告成!!!