逆向分析
- 1. 实现目标
- 2. 使用工具
- 3. 实现原理
- 4. 核心思路
- 5. 实现过程
- 1. 实现内购
- 2.屏蔽游戏下线提醒信息
1. 实现目标
(1)屏蔽经典经典贪吃蛇大作战游戏的过期提醒
(2)内购游戏道具
2. 使用工具
(1)雷电模拟器9
(2)经典经典贪吃蛇大作战(apk文件)
(3)Android Killer
Android killer
Android Killer 是一款可视化的安卓应用逆向工具,也是目前使用最为广泛的Android逆向工具开发的集成平台。它能完成Apk反编译、Apk打包、Apk签名,编码互转,ADB通信等各种功能,实现各种工具的自动化运行,支持日志输出、语法高亮和基于关键字项目内搜索,同时可自定义外部工具,从而大大简化了安卓应用逆向过程中的各类繁琐工作。
3. 实现原理
APK文件
Android应用程序包(Android application package,APK)是Android操作系统使用的一种应用程序包文件格式,用于分发和安装移动应用及中间件。其构造方式与JAR文件类似,是一种基于ZIP文件格式的文件。一个Android应用程序的代码想要在Android设备上运行,必须先进行编译,然后被打包成为一个被Android系统所能识别的文件才可以被运行,而这种能被Android系统识别并运行的文件格式便是“APK”。 一个APK文件内通常包含被编译的代码文件(.dex 文件)、文件资源(resources)、 原生资源文件(assets)、证书(certificates)和清单文件(manifest file)。
4. 核心思路
(1)启动Android Killer工具
(2)将本实验所用apk导入Android Killer
(3)搜索相关语句分析代码
(4)测试修改后的apk文件
5. 实现过程
1. 实现内购
(1)使用雷电模拟器9打开经典贪吃蛇大作战游戏,进入商店点击“购买”
由图可知,有“游戏已下线,不可正常计费”、“支付取消”的文字提示
(2)打开AndroidKiller,将该apk文件拖入,点击确定
(3)点击 工程搜索》输入 支付取消》编码转换
(4)选择转成unicode编码,点击搜索
(5)点击详细查看结果
成功找到了该关键字(6)仔细查看该文件代码,发现了解码为“支付成功”的关键字
(7)将“支付成功“关键字下的逻辑代码复制到”支付取消“的代码里替换原有代码。
(8)== Ctrl + s== 保存并点击Android》编译进行打包
AndroidKiler打包apk文件步骤:
(9)打开新保存的apk文件进行测试
结果显示:点击“购买”,显示“支付成功”并且成功复活。
2.屏蔽游戏下线提醒信息
(1)搜索处理内购函数名称DK_Pay
(2)依次查看搜索得到的代码结果寻找该消息提示的代码。
将消息提示函数返回语句修改为支付成功里的语句。
(3)保存》Android》编译》新的apk文件
(4)运行该文件,消息提示不再出现。
(5)最后测试不用花任何钱就能内购所有游戏内的道具。完成!