Android 逆向破解 APK
准备工具: #
D2XTool dex 转 jar包
AndroidStudio ADB 调试工具
解压包分析: #
这款APP拥有登录认证功能,那么我的首先思路就是在 LoginActivity 登录的时候将登录先跳过,查看里面的功能。
将apktool加入到系统环境变量。
首先逆向APK解压包,命令执行:
D:\Software\WeChat\WeChat Files\wxid_n06d1hpguicp22\FileStorage\File\2024-02>apktool d v2.apk
I: Using Apktool 2.9.3 on v2.apk
I: Loading resource table...
I: Decoding file-resources...
I: Loading resource table from file: C:\Users\chaojie\AppData\Local\apktool\framework\1.apk
I: Decoding values */* XMLs...
I: Decoding AndroidManifest.xml with resources...
I: Regular manifest package...
I: Baksmaling classes.dex...
I: Baksmaling classes2.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...
执行完成之后在当前目录下会看到多了一个当前apk名称的文件夹:
其中的smail文件夹就是源代码了,不过全都是smail代码,可读性不佳,那么就需要配合java源代码来分析其中代码的含义。
把apk安装包使用zip工具打开,可以看到里面有以下文件:
现在将jar包拖动到jd-gui里面分析源码:
过程略过,有点敏感。
修改smail代码后需要重新打包,签名,对其,命令:
将逆向后的代码重新打包:
apktool b 5_base -o new_app_test.apk
4k对齐:
C:\Users\chaojie\AppData\Local\Android\Sdk\build-tools\30.0.3\zipalign -f -v 4 new_app_test.apk output.apk
重新签名:
java -jar C:\Users\chaojie\AppData\Local\Android\Sdk\build-tools\30.0.3\lib\apksigner.jar sign --ks pojie.jks -ks-key-alias pojie --out ./v2.apk ./output.apk