一个关于破解游戏的掉 败例子命运-冠位指定(FGO)
应用的东西: Android killer 1.3.1.0游戏包体 : fatego 的 1.8.6版本 (小米平台下的)
由于手机是小米的 所以就下载了小米包。
一个游戏想要在分歧平台上线,就必需接分歧平台的SDK,而且应用阿谁平台的付出。
单机游戏基础会在收到sdk回调就发道具,而网游就有可能多了一步,就是收到sdk回调后,又往恳求办事器同步订单,再判定是否发道具,由于此次的游戏例子是网游,加上本人痴顽,临时还没找到在哪里获取同步订单的方式,所以此次的破解是掉败的,
等那一天up主找到破解胜利后就把进程和制品送上
但我们知道这种机制后,我们就可以少走良多弯路,不消一个一个文件往翻往看,那么多文件,叫我看我确定不干的,
所以就往下载小米的sdk回来 看文档发明 小米挪用付出 的方式是MiCommplatform.getInstance().miUniPay();
那么我们直接搜刮工程miUniPay 然后发明找到的成果有好几个 不外看看也知道确定是第一个啦 (图1)
命运不错 ,直接射中红心了, 然后我们发明,游戏的回调都在PayProcessListener(图2);
进往后发明回调都在 MiGameSdkImpl$MiPayProcessListener$1而且里面有个switch case(图3)
到了这里 我们又可以归去看小米sdk的文档了知道了小米胜利回调 是:0 ,撤消是:-18004掉败是:-18003
如许我们就能清楚 里面sswitch_0就是胜利sswitch_1是撤消 sswitch_2 操纵正在履行
我们把sswitch_0里面做的工作丢到 sswitch_1里面
保留 从头打包安装
装完后发明付出的时辰按返回键废弃订单没有产生转变
当不知道为什么的时辰 最好打LOG所以在每个switch case 里都打了log ,又发明 竟然在default里面呈现了log
被小米摆了一道 撤消的回调竟然都十足回于 掉败,
知道原因后我们就往sswitch_data_0 把胜利的方式丢进往 从头打包安装
就会发明此次确切有变更了,付出的时辰按撤消,客户端已经收到小米付出胜利的回调,可是又往做多了一步(同步订单),(图4)和(图5)
到这 ,破解也就掉败了,然而,看完仍是有点用途的,对于年夜部门的单机游戏,收到平台付出胜利回调后是不会再往同步订单再往判定是否发道具的,所以这措施可用于破解单机
最后再说说对这个游戏例子同步订单的料想
付出胜利回调是new 了一个bundle里面带了三个参数 out_trade_no,bs_out_trade_no,result(图6)
再跟踪下往 我们就会来到MiGameSdkImpl$MiPayProcessListener$1,就会看到 (图7)
由于这个游戏是Unity做的 所以又往看看其他Unity游戏回调(图8) 基础都是经由过程这种类型的方式回调游戏发道具,在里面的几个参数就是破解的要害了
页:
[1]