文章目录
一、APK 解析工具
二、解包 -> 分析 -> 重打包 -> 签名 流程
一、APK 解析工具
使用 【Android 逆向】使用 Python 编写 APK 批处理分析工具 博客中的 Python 编写的 APK 处理分析工具 , 分析一个游戏应用 ;
上述工具中 , 使用到了一个核心的 Python 脚本 ApkTool.py , 在 【Android 逆向】ApkTool 工具使用 ( ApkTool 简介 | ApkTool 解包和打包 ) 博客中进行了简要介绍 ;
该工具源码 : https://github.com/han1202012/APK
该 APK 处理程序会自动将 apk 目录下的 .apk 后缀的安装文件自动解包 , 分析其中的内容 , 然后自动进行重打包 , 其中农耕使用的签名文件是工程根目录下的 mykey-123456.keystore 签名文件 ;
二、解包 -> 分析 -> 重打包 -> 签名 流程
执行 APK 处理程序 , 开始分析 apk/Game.apk 文件 ;
程序执行完毕后 , 分析结果如下 :
分析后提取的关键数据存放在 Game.txt 文件中 ;
解包的文件放在 apk/unpack 目录中 ;
重打包的文件放在 apk/repack/Game.apk 位置 , 此时改文件还未签名 , 不能执行 ;
签名后的文件放在 apk/sign/Game.apk 处 , 该文件可以直接执行 ;
Game.txt 中的内容展示 : 应用名称 , 包名 , 程序版本号 , 编译时使用的 SDK 版本 , 重打包 / 签名 状态 , 当前使用的游戏引擎 等 数据 ;
如果要修改 Game.apk 应用中的内容 , 需要在 解包后 , 使用 IDA 分析应用内的动态库 , 根据分析结果 , 修改 so / dll 动态库中的二进制机器码 , 然后使用修改后的动态库 替换 原来的动态库 , 再进行重打包操作 ;