CJ.Blog


Android 逆向破解 APK

准备工具: #

ApkTool 2.9.3 逆向打包APK工具

JD-GUI 源码查看

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名称的文件夹:

img

其中的smail文件夹就是源代码了,不过全都是smail代码,可读性不佳,那么就需要配合java源代码来分析其中代码的含义。

把apk安装包使用zip工具打开,可以看到里面有以下文件:

img

现在将jar包拖动到jd-gui里面分析源码:

img

过程略过,有点敏感。

修改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