本帖最后由 lzc090 于 2016-9-26 07:50 编辑
有破解过、玩过移动MM或者是咪咕的内购破解游戏的人会遇到一种问题,就是在购买时候会弹出信息支付窗口(不小心可能误点造成扣费)+购买需要网络和信号才能够买的情况。
因此我尝试了进行更改,飞行模式就可以直接内购成功且不弹出支付窗口(大神求绕行)
开始:
1.下载传奇魔兽--地址游戏MM,安装游戏后请使用飞行模式进行购买,发现会弹出一条信息“暂时无法支付”
2.用killer进行反编译,搜索“暂时无法支付”(记得转成U码),com/panmanager/JniTestManager$1,信息就在这文件里面。---很多游戏在这情况下是不会弹出任何信息的,可以搜索SIM_ID/handleMessage/airplane_mode_on
下面是文件里面的信息#是我备注出来的
[Asm] 纯文本查看 复制代码 sparse-switch v3, :sswitch_data_0
.line 239
:goto_0
:sswitch_0 #空值返回--意思就是返回成功的意思
return-void
.line 137
:sswitch_1
sget v3, Lcom/panmanager/JniTestManager;->SIM_ID:I #SIM卡检测,有SIM卡时候购买成功
invoke-static {v3}, Lcom/panmanager/JNIInit;->GetBuy(I)V
goto :goto_0
.line 141
:sswitch_2
sget v3, Lcom/panmanager/JniTestManager;->SIM_ID:I #SIM卡检测,无sim卡时购买失败
invoke-static {v3}, Lcom/panmanager/JNIInit;->GeFailure(I)V
goto :goto_0
.line 156
:sswitch_3
sget-object v3, Lcom/panmanager/JniTestManager;->instance:Landroid/app/Activity;
const-string v4, "\u6682\u65f6\u65e0\u6cd5\u652f\u4ed8\uff01" #检测SIM,无sim卡,提示:暂时无法支付
const/4 v5, 0x0
invoke-static {v3, v4, v5}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
move-result-object v3
invoke-virtual {v3}, Landroid/widget/Toast;->show()V #弹出提示框消息: 暂时无法支付
#因此我们只需要把 sswitch_3改成sswitch_1
goto :goto_0
.line 159
:sswitch_4 [color=#000000]#下面是一些支付的其他情况提示,不用去考虑。
得到信息后我们只要将下面的分支改一下就可以了
:sswitch_data_0
.sparse-switch
0x0 -> :sswitch_5
0x1 -> :sswitch_7
0xa -> :sswitch_0
0xb -> :sswitch_0
0xc -> :sswitch_0
0xd -> :sswitch_0
0xe -> :sswitch_4
0x18 -> :sswitch_1
0x19 -> :sswitch_2
0x1a -> :sswitch_3-----------改成:sswitch_1
0x65 -> :sswitch_6
内购方法就不介绍了:上面的代码也已经告诉你购买成功的代码是GetBuy,你只要搜索这个就可以找到了
修改前:
需要网络、信号和弹窗
修改后:
直接成功
|