移动安全技术_安卓逆向5:绕过单机游戏的商店支付

Posted hunpi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了移动安全技术_安卓逆向5:绕过单机游戏的商店支付相关的知识,希望对你有一定的参考价值。


环境说明

安装apk

  游戏apk说明:难以运行在安卓7、安卓5,适合运行在安卓4。不能在手机上运行。

  本机已安装的夜神只支持安卓5和安卓7,需要下载2020年5月左右的夜神版本。
  安装安卓夜神6.3.0.0,运行“夜神多开器”,点击“添加模拟器”,选择android/4.4.2,运行模拟器。把apk拖拽到模拟器,安装应用成功。

在这里插入图片描述

配置monitor

  我们可以使用Windows自带的monitor来查看主机与程序交互的过程,
本地monitor位置:C:\\Users\\Administrator\\AppData\\Local\\Android\\Sdk\\tools\\monitor.bat。

目标测试

  运行游戏,进入商店:
在这里插入图片描述
  尝试购买商品,返回“支付失败,请稍后重试”。
在这里插入图片描述


开始逆向

  使用AndroidKiller打开滚动的天空_1.1.0.140.apk,反编译项目:
在这里插入图片描述
  找到工程搜索模块,搜索相关信息"支付失败,请稍后重试",没有找到;缩减关键字继续搜索"支付失败",找到相关字符信息,双击string查看:
在这里插入图片描述
  在安卓程序中,中文字符通常被编码成Unicode字符,形式是\\uxxxx。使用在线网站https://www.jb51.net/tools/onlinetools/jiemi/uniendecode.htm对"支付失败"进行Unicode编码,得到%u652F%u4ED8%u5931%u8D25。也可以使用AK自带的编码转换器。

  将密文中的%替换成\\u,得到\\u652F\\u4ED8\\u5931\\u8D25$smali文件中寻找相关输出代码,找到OppPay$2$1.smali
在这里插入图片描述
  查看关键代码,看到onFailure()和onSuccess()函数,使用支付成功的函数内容,全部替换支付失败的函数内容:
在这里插入图片描述

  对修改后的项目进行编译,在AndroidKiller_v1.3.1\\projects\\滚动的天空_1.1.0.140\\Bin目录下找到滚动的天空_1.1.0.140_killer.apk,拖拽到夜神模拟器(需要先卸载之前安装的版本),安装成功。

  效果测试:点击"其他支付",再点击取消,可以看到道具购买成功!
在这里插入图片描述
在这里插入图片描述

以上是关于移动安全技术_安卓逆向5:绕过单机游戏的商店支付的主要内容,如果未能解决你的问题,请参考以下文章

移动安全技术_安卓逆向6:使用smalidea动态调试

移动安全技术_安卓逆向4-使用AndroidKiller插入广告页

安卓逆向 -- 绕过SO层签名验证

360团队封神之作《安卓App逆向与安全防护学习手册》,首次开源分享,下载量破10W+!

安卓APP动态调试-IDA实用攻略

2018当乐5折客户端安全性评测