Android 逆向逆向修改游戏应用 ( APK 解析工具 | 解包 -> 分析 -> 重打包 -> 签名 流程 )
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 逆向逆向修改游戏应用 ( 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 动态库中的二进制机器码 , 然后使用修改后的动态库 替换 原来的动态库 , 再进行重打包操作 ;
以上是关于Android 逆向逆向修改游戏应用 ( APK 解析工具 | 解包 -> 分析 -> 重打包 -> 签名 流程 )的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向APK 加壳脱壳现状 | 判断 APK 是否加壳 | APK 逆向流程
Android 逆向APK 文件格式 ( Android 应用安装 | Zip 文件格式 | 使用 Python 代码提取 APK 文件 )