吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 15055|回复: 82
收起左侧

[Android 原创] 带大家学习一波骚操作之让游戏自己告诉我们修改哪(InjectLog工具使用&小白必学)

    [复制链接]
wxpayer 发表于 2018-12-23 19:53
本帖最后由 wxpayer 于 2018-12-23 20:01 编辑

1.      InjectLog工具介绍(介绍部分直接抄大哥的了,懒~)这个工具是charlessimonyi大神在一篇博文中设计的。原文:https://blog.csdn.net/charlessimonyi/article/details/52027563这里使用的吾爱大哥优化的工具原贴地址:https://www.52pojie.cn/thread-743758-1-1.html组成以及运行包括InjectLog.smalismalihook.pyInjectLog.bat,一共3个文件。其中InjectLog.smali是需要放到逆向工程里的smali文件,smalihook.py负责在所有smali文件中插入调用,InjectLog.bat是实现一键操作的批处理。使用时,上述3个文件放到andriodkiller根目录,InjectLog.bat可添加为andriodkiller自定义工具。电脑中安装python3.0以上版本,并设置环境变量。优缺点。这个工具属于LOG分析方法。作用简单说就是把JAVA层运行过的所有方法名(包括包名类名),按照运行先后顺序在LOG中输出出来。它可以做到:把所有执行过的方法打印出来,所有没打印出来的方法,我们能确定它没执行过!所以,这个工具虽然是静态方法,但一定程度上可以达到动态分析的效果,特别是对分析app运作流程(如内购)有奇效。已知和需要注意的问题,A.如果app对系统LOG做过手脚关闭输出的话,需要想办法解开  B.极少数的方法名在LOG中打印不出来  C.这个工具是JAVA层的,只对smali起作用  D.方法名高度混淆的不好使  E.dex的还不支持,不是injectlog不能用于多dex,而是我不会写多dex的批处理,有懂的可以自己优化一下(大哥原话,借用一下)。2.      破解样本(割绳子:魔法)选择这个游戏的原因,这个游戏无论ZFB还是WX购买,支付失败也能看到一些弹窗,还有一些提示,在安装包里也能找到定义的地方,但是dex里完全找不到调用方法,猜测可能在so里调用或者以其他方式加密了,不管是哪种方式都不容易下手,实践证明还是打log比较容易。工具安装步骤
Androidkiller工具栏点击自定义
1.png
空白区域鼠标右键点击添加,将工具名称和路径填好就可以了

2.png
接下来进入主题使用工具打好log后,回编译会失败,但是classses.dex是可以编译成功的,用360压缩打开安装包替换即可,最后重新签名。进入游戏购买看一下,点击取消,使用ddms查看log输出我们看下log日志信息
4.png
这里就截取一部分图片了,其他的都是一样的,发现一直都是输出这几句日志,我们进入smali查看没有发现相关内购代码,找到对应方法删除invoke-static{},Lcom/hook/testsmali/InjectLog;->PrintFunc()V这行代码
3.png

回编译重新测试,还是有这样的方法,同样把log打印方法删掉。这里不进行赘述,自行测试,经过好几次修改,运行程序。

12-22 20:38:34.517: D/InjectLog(26606): com.mygamez.billing.ChinaBillingPayCallback$1.onResult(ChinaBillingPayCallback.java)[1]12-22 20:38:34.517: D/InjectLog(26606):com.mygamez.billing.BillingResult.<init>(BillingResult.java)[1]12-22 20:38:34.517: D/InjectLog(26606):com.mygamez.billing.BillingResult.setResultCode(BillingResult.java)[1]12-22 20:38:34.518: D/InjectLog(26606):com.mygamez.billing.BillingResult.setBillingIndex(BillingResult.java)[1]12-22 20:38:34.520: D/InjectLog(26606):com.mygamez.billing.BillingResult.setOrderId(BillingResult.java)[1]12-22 20:38:34.521: D/InjectLog(26606):com.mygamez.billing.BillingResult.setReturningObject(BillingResult.java)[1]12-22 20:38:34.521: D/InjectLog(26606):com.mygamez.billing.BillingResult.setCode(BillingResult.java)[1]12-22 20:38:34.521: D/InjectLog(26606):com.mygamez.common.Log.i(Log.java)[1]12-22 20:38:34.521: D/InjectLog(26606):com.mygamez.billing.BillingResult.toJSON(BillingResult.java)[1]12-22 20:38:34.521: D/InjectLog(26606):com.mygamez.common.Log.i(Log.java)[1]12-22 20:38:34.522: D/InjectLog(26606):com.mygamez.billing.AbstractChinaBillingPayCallback.launchResultReceived(AbstractChinaBillingPayCallback.java)[1]12-22 20:38:34.522: D/InjectLog(26606):com.mygamez.billing.BillingResult.getResultCode(BillingResult.java)[1]12-22 20:38:34.522: D/InjectLog(26606):com.mygamez.common.Settings.getReceiptApiUpdateJSON(Settings.java)[1]12-22 20:38:34.522: D/InjectLog(26606):com.mygamez.billing.BillingResult.getResultCode(BillingResult.java)[1]12-22 20:38:34.523: D/InjectLog(26606): com.mygamez.billing.BillingResult.getOrderId(BillingResult.java)[1]12-22 20:38:34.523: D/InjectLog(26606):com.google.gson.GsonBuilder.<init>(GsonBuilder.java)[1]12-22 20:38:34.523: D/InjectLog(26606):com.google.gson.GsonBuilder.create(GsonBuilder.java)[1]12-22 20:38:34.524: D/InjectLog(26606):com.google.gson.GsonBuilder.addTypeAdaptersForDate(GsonBuilder.java)[1]12-22 20:38:34.524: D/InjectLog(26606):com.google.gson.Gson.<init>(Gson.java)[1]12-22 20:38:34.524: D/InjectLog(26606):com.google.gson.internal.ConstructorConstructor.<init>(ConstructorConstructor.java)[1]12-22 20:38:34.524: D/InjectLog(26606):com.google.gson.Gson.longAdapter(Gson.java)[1]12-22 20:38:34.525: D/InjectLog(26606):com.google.gson.internal.bind.TypeAdapters.newFactory(TypeAdapters.java)[1]12-22 20:38:34.525: D/InjectLog(26606):com.google.gson.internal.bind.TypeAdapters$33.<init>(TypeAdapters.java)[1]12-22 20:38:34.525: D/InjectLog(26606):com.google.gson.Gson.doubleAdapter(Gson.java)[1]12-22 20:38:34.525: D/InjectLog(26606):com.google.gson.Gson$1.<init>(Gson.java)[1]12-22 20:38:34.526: D/InjectLog(26606):com.google.gson.TypeAdapter.<init>(TypeAdapter.java)[1]12-22 20:38:34.526: D/InjectLog(26606):com.google.gson.internal.bind.TypeAdapters.newFactory(TypeAdapters.java)[1]12-22 20:38:34.526: D/InjectLog(26606):com.google.gson.internal.bind.TypeAdapters$33.<init>(TypeAdapters.java)[1]12-22 20:38:34.526: D/InjectLog(26606):com.google.gson.Gson.floatAdapter(Gson.java)[1]12-22 20:38:34.526: D/InjectLog(26606):com.google.gson.Gson$2.<init>(Gson.java)[1]12-22 20:38:34.527: D/InjectLog(26606):com.google.gson.TypeAdapter.<init>(TypeAdapter.java)[1]12-22 20:38:34.527: D/InjectLog(26606):com.google.gson.internal.bind.TypeAdapters.newFactory(TypeAdapters.java)[1]12-22 20:38:34.527: D/InjectLog(26606):com.google.gson.internal.bind.TypeAdapters$33.<init>(TypeAdapters.java)[1]12-22 20:38:34.527: D/InjectLog(26606):com.google.gson.Gson.atomicLongAdapter(Gson.java)[1]12-22 20:38:34.527: D/InjectLog(26606):com.google.gson.Gson$4.<init>(Gson.java)[1]
在上面的方法中发现这样一个方法,打开看一下com.mygamez.billing.BillingResult.getResultCode在开头看到了BILLING_RESULT_SUCCESS:I = 0x1,定义成功的返回值为1

6.png
继续查看我们的getResultCode方法,只有一句代码,返回我们的支付结果

7.png
修改很简单,也很粗暴,直接添加一句const v0,1那就无论支付结果是什么,最终都为1,也就是成功

8.png
最后保存,去除短信发送权限(该游戏没有短信支付方式,去除或者不去除都无所谓了),安装重新测试,购买成功!感谢大哥提供的工具@winding 最后给上大家工具和样本链接:链接:https://pan.baidu.com/s/1I7cGAkh217G5IM4icXeIzA
提取码:et59

免费评分

参与人数 23吾爱币 +27 热心值 +22 收起 理由
shdm520 + 1 + 1 我很赞同!
xiaoleilll + 1 谢谢@Thanks!
zxw0557 + 1 + 1 我很赞同!
5rfn + 1 + 1 用心讨论,共获提升!
笙若 + 1 + 1 谢谢@Thanks!
335505 + 1 + 1 有没有联通iptv客户端,修改收费的板块。
sunnylds7 + 1 + 1 热心回复!
独行风云 + 1 + 1 谢谢@Thanks!
kingdiao + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
rty600 + 1 谢谢@Thanks!
qtfreet00 + 6 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
kiki09 + 1 + 1 热心回复!
中国法制史 + 1 + 1 用心讨论,共获提升!
spll6 + 1 + 1 用心讨论,共获提升!
qi843679 + 1 + 1 热心回复!
ainimemeda + 1 + 1 热心回复!
没有VPN会死 + 1 我很赞同!
CrazyNut + 3 + 1 用心讨论,共获提升!
zz0147 + 1 + 1 并设置环境变量??Java?
杀猪用牛刀 + 1 + 1 谢谢分享,我这就去试一哈。
x-joker + 1 + 1 我很赞同!
挥汗如雨 + 2 + 1 热心回复!
风紧,扯乎 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| wxpayer 发表于 2018-12-23 20:08
CrazyXyu 发表于 2018-12-23 20:05
我是一楼?顶一下

欢迎欢迎
CrazyXyu 发表于 2018-12-23 20:05
兜兜里有糖糖 发表于 2018-12-23 20:22
惊呆!!!!表示已经惊呆了。哈哈哈,楼主是大神!学习!
faker635 发表于 2018-12-23 20:25
666666666666666666666
米老头 发表于 2018-12-23 20:40
谢谢分享支持一波。
涛之雨 发表于 2018-12-23 20:42
真的是受够了静态分析。。。。。
楼主让我又看到了希望
barrya11en 发表于 2018-12-23 20:47
哈哈,楼主是大神!学习!
zxy453326 发表于 2018-12-23 20:59
谢谢楼主分享
yangdashuo 发表于 2018-12-23 21:18

谢谢楼主分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-22 03:09

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表