对 熊大快跑Ver2.0.4 和支付的分析

前言

以前遇到和支付验证的游戏,都习惯性的从MM商城重新下载破解,那里面支付机制的比较熟悉,去除支付界面直接成功的代码也比较好找,今天公司的一个同事在推广业务的时候,给了我这个包,看来必须要分析了。打LogCat的方法,没找出来,所以直接请教人了,以下是“荡”给的方法。

[javascript]  view plain copy
  1. 和支付:g.10086.cn  
  2. MM商城:http://mm.10086.cn/android  
具体步骤

1、和支付的关键破解点在"onResult"Method中。如下面:

[javascript]  view plain copy
  1. .method public onResult(ILjava/lang/String;Ljava/lang/Object;)V  
  2.   
  3.     const/4 v3, 0x2  
  4.     const/4 v2, 0x1  
  5.     const-string v0, ""  
  6.     new-instance v0, Ljava/util/ArrayList;  
  7.     invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V  
  8.     packed-switch p1, :pswitch_data_0  
看下面的代码流程,:pswitch_0是成功的代码,所以只需要在程序初始化成功后添加一句代码就行。
[javascript]  view plain copy
  1. invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V  
  2. goto :pswitch_0  
  3. packed-switch p1, :pswitch_data_0  
2、同时,他还提出了一种方法,熊大快跑里面还整合了电信运营商的支付机制,要是能够将所有的支付接口都调用电信,那么程序的修改就变得更加简单了,可以不弹支付界面直接成功哦。
搜索电信“46003”,让它判定成功。如下一例:
[javascript]  view plain copy
  1. //获取手机的IMSI  
  2. invoke-virtual {v0}, Landroid/telephony/TelephonyManager;->getSubscriberId()Ljava/lang/String;  
  3. move-result-object v0  
  4.   
  5. //判断是否获取为0,即是否获取成功  
  6. if-eqz v0, :cond_2    //删除,支持离线  
  7. //电信运营商的标识码  
  8. const-string v3, "46003"  
  9. //开头是否为“46003”  
  10. invoke-virtual {v0, v3}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z  
  11. move-result v0  
  12. //如果是“46003”口头 则跳到:con_0  
  13. if-nez v0, :cond_0   //删除该句让它跳转成功  
  14. const-string v0, "\u4e2d\u56fd\u7535\u4fe1"  
锁定电信运营商以后 我们就修改其支付支付机制,关键词“paysuccess”“payfail”等,替换一下就行。
后记
所以,以后遇到热门的短代支付的游戏,简单的破解步骤就是:
先搜索“46003”,修改代码让它无限判断成功;
然后paysuccess、payfail、payfail替换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值