准备工作
主要使用工具:
apktool、
反编译流程:
- 使用apktool解包
- 修改代码
- 使用apktool重新打包
- 添加签名
使用apktool解包
使用命令如下:
apktool d -f [待反编译的apk] -o [反编译之后存放文件夹]
例如:
apktool d xxx.apk
image.png
反编译得到的文件夹内容如下:
image.png
其中smali文件夹下就是代码编译后生成的smail文件。
修改代码
修改代码也是修改smail文件。
修改smail的时候要先阅读下源码,这个时候要用到反编译。、
反编译参考文章APK逆向工程
通过GUI界面,查看到源码后,找到对应的smail文件,对应的代码位置进行修改即可。
使用apktool重新打包
重新打包最主要使用的工具还是apktool.
执行命令:
apktool b -f ./test/ -o test.apk
打包完后当前目录下会多出两个文件夹:
image.png
dist文件
内就是我们需要的apk。
添加签名
如果没有签名,安装时候就会报错:
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]。
这里主要是生成自己的签名文件。
可以使用 Android Studio可视化操作界面生成一个新的签名文件,也可以直接使用 keytool 工具直接在终端工具上生成,使用时候需要先找到keytool 工具的安装路径,一般是在C:\Users\Admin\AppData\Local\Android\Sdk\build-tools\30.0.3
下.
使用命令如下:
keytool -genkey -alias abc123.keystore -keyalg RSA -validity 40000 -keystore abc123.keystore
生成abc123.keystore 签名文件。一般需要输入秘钥,秘钥我这里直接输入123456
。
然后就可以使用签名文件进行签名了:
jarsigner -verbose -keystore abc123.keystore -signedjar hello_sign123.apk hello_test.apk abc123.keystore
这样就签名完成了,安装hello_sign123.apk
就可以使用了。
网友评论