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逆向工程工具 - 3

Android 逆向APK 文件格式 ( Android 应用安装 | Zip 文件格式 | 使用 Python 代码提取 APK 文件 )

Android apk如何加固防止被破解(防止逆向编译)

Android apk如何加固防止被破解(防止逆向编译)

如何防止对 Android APK 文件进行逆向工程以保护代码?