发新帖

锁定状态码破解具体方法?

[复制链接]
16339 1
1NB
鬼哥的
以TTX连萌来多层次分析游戏破解中的因为理解能力差,教程所以中将其返回值修改为0x3e9,即数字1001,即代表支付成功。想了半天也,没想明白到底怎么修改
那位大神给我说说,具体锁定的是什么位置。


我们在追踪onBillingFinish方法上下文的时候,发现PurchaseCode.smali中的getStatusCode()I方法以及MessageInfo.smali中的getPurchasecode()I方法,应该是用于定义支付码状态,即支付成功,支付失败,取消支付的。
在PurchaseCode.smali文件中,我们发现:

.field public static final WEAK_ORDER_OK:I = 0x3e9

这个是定义支付订单成功的状态码。一般在移动MM里面,多数都是这个。
所以,我们可以看到上面所说getStatusCode()I方法和getPurchasecode()I方法都是返回值为int类型的,那么我们直接将其返回值修改为0x3e9,即数字1001,即代表支付成功。
我们保存修改,回编译,查看到,点击购买按钮,直接提示下图:




最佳答案

查看完整内容

直接找到代码设定的地方: .method public static setStatusCode(I)V .locals 0 sput p0, Lmm/sms/purchasesdk/PurchaseCode;->statusCode:I return-void .end method 全局变量 .field public static final ORDER_OK:I = 0x3e9 成功的代码为 0x3e9 所以我们直接把p0改成0x3e9 const/16 p0,0x3e9 sput p0, Lmm/sms/purchasesdk/PurchaseCode;->statusCode:I return-void ...

举报 使用道具

回复

精彩评论1

myoldid    发表于 2014-12-25 18:35:10 | 显示全部楼层
直接找到代码设定的地方:
.method public static setStatusCode(I)V
    .locals 0
    sput p0, Lmm/sms/purchasesdk/PurchaseCode;->statusCode:I
    return-void
.end method
全局变量
.field public static final ORDER_OK:I = 0x3e9
成功的代码为 0x3e9
所以我们直接把p0改成0x3e9
    const/16 p0,0x3e9
    sput p0, Lmm/sms/purchasesdk/PurchaseCode;->statusCode:I
    return-void

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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