安卓逆向系列教程 4.9 破解内购 II

4.9 破解内购 II

作者:飞龙

这次要破解的游戏是这个:http://dl.pconline.com.cn/download/544623.html

打开游戏后,主界面有个 VIP,我们要破解的就是这个东西:

我们切换到“好友代付”,点击“购买”,然后是“确认支付”:

提示“购买道具xxx失败”。好,我们载入 AK:

我们搜索“失败”的 Unicode,在SDKMessage$1中找到了失败的文本。

.line 203
:pswitch_1
new-instance v1, Ljava/lang/StringBuilder;

# 购买道具:[
const-string v2, "\u8d2d\u4e70\u9053\u5177\uff1a["

invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

move-result-object v1

# ] 失败!
const-string v2, "] \u5931\u8d25\uff01"

invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

move-result-object v1

invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

move-result-object v0

这是switch是一个分支,我们直接往上找:

.line 197
.local v0, "result":Ljava/lang/String;
packed-switch p1, :pswitch_data_0

# ...

.line 197
:pswitch_data_0
.packed-switch 0x1
    :pswitch_0
    :pswitch_1
.end packed-switch

按照惯例,我们把跳转表都改成:pswitch_0,编译,打包,安装。然后随便购买一个东西。虽然 SDK 的对话框提示失败,这个我们改不了,但是游戏的Toast提示成功。

posted @ 2017-04-04 10:26  绝不原创的飞龙  阅读(13)  评论(0编辑  收藏  举报  来源