【Android 逆向】逆向修改游戏应用 ( APK 解析工具 | 解包 -> 分析 -> 重打包 -> 签名 流程 )

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 【Android 逆向】逆向修改游戏应用 ( APK 解析工具 | 解包 -> 分析 -> 重打包 -> 签名 流程 )

文章目录

一、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 签名文件 ;


image.png






二、解包 -> 分析 -> 重打包 -> 签名 流程


执行 APK 处理程序 , 开始分析 apk/Game.apk 文件 ;

image.png



程序执行完毕后 , 分析结果如下 :


分析后提取的关键数据存放在 Game.txt 文件中 ;

解包的文件放在 apk/unpack 目录中 ;

重打包的文件放在 apk/repack/Game.apk 位置 , 此时改文件还未签名 , 不能执行 ;

签名后的文件放在 apk/sign/Game.apk 处 , 该文件可以直接执行 ;


image.png

Game.txt 中的内容展示 : 应用名称 , 包名 , 程序版本号 , 编译时使用的 SDK 版本 , 重打包 / 签名 状态 , 当前使用的游戏引擎 等 数据 ;

image.png



如果要修改 Game.apk 应用中的内容 , 需要在 解包后 , 使用 IDA 分析应用内的动态库 , 根据分析结果 , 修改 so / dll 动态库中的二进制机器码 , 然后使用修改后的动态库 替换 原来的动态库 , 再进行重打包操作 ;


目录
相关文章
http数据包抓包解析
http数据包抓包解析
|
2月前
|
网络协议 网络虚拟化
接收网络包的过程——从硬件网卡解析到IP
【9月更文挑战第18天】这段内容详细描述了网络包接收过程中机制。当网络包触发中断后,内核处理完这批网络包,会进入主动轮询模式,持续处理后续到来的包,直至处理间隙返回其他任务,从而减少中断次数,提高处理效率。此机制涉及网卡驱动初始化时注册轮询函数,通过软中断触发后续处理,并逐步深入内核网络协议栈,最终到达TCP层。整个接收流程分为多个层次,包括DMA技术存入Ring Buffer、中断通知CPU、软中断处理、以及进入内核网络协议栈等多个步骤。
|
3月前
|
安全 Java Android开发
【Android P】OTA升级包定制,移除不需要更新的分区,重新打包签名
如何解压OTA升级包、编辑升级包内容(例如移除不需要更新的分区)、重新打包、签名以及验证OTA文件的过程。
260 2
【Android P】OTA升级包定制,移除不需要更新的分区,重新打包签名
http数据包抓包解析课程笔记
http数据包抓包解析课程笔记
|
3月前
|
Java Android开发 Windows
使用keytool查看Android APK签名
本文介绍了如何使用Windows命令行工具和keytool查看APK的签名信息,并提供了使用AOSP环境中的signapk.jar工具对APK进行系统签名的方法。
325 0
使用keytool查看Android APK签名
|
3月前
|
XML 存储 JavaScript
xml介绍与解析,及xml库包使用
xml介绍与解析,及xml库包使用
34 0
|
3月前
|
机器学习/深度学习 计算机视觉 Python
深度学习项目中在yaml文件中定义配置,以及使用的python的PyYAML库包读取解析yaml配置文件
深度学习项目中在yaml文件中定义配置,以及使用的python的PyYAML库包读取解析yaml配置文件
93 0
|
3月前
|
网络协议 网络虚拟化
解析接收网络包的过程
【8月更文挑战第6天】IP层->TCP层->Socket层
|
4月前
|
存储 数据挖掘 Linux
探索Linux命令rpm2cpio:解析RPM包内容的利器
`rpm2cpio`是Linux下用于从RPM包中提取内容的工具,它将`.rpm`转换为CPIO归档。无需安装,可直接访问包内文件,适合数据分析。命令简单,常与`cpio`结合使用,如`rpm2cpio package.rpm | cpio -idmv`解压文件。示例包括提取特定文件和列出包内所有文件。注意权限、路径和文件完整性,使用前备份数据,并查阅文档以优化使用。
|
4月前
|
存储 Python 容器
`click`是一个用于构建命令行接口的Python包,它提供了简单、可组合的命令行解析器。
`click`是一个用于构建命令行接口的Python包,它提供了简单、可组合的命令行解析器。

推荐镜像

更多
下一篇
无影云桌面