吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8659|回复: 14
收起左侧

[Android 原创] 破解移动游戏【武林传】的代码分析

  [复制链接]
傲世V雄哥720 发表于 2014-11-16 14:14
本帖最后由 傲世V雄哥720 于 2014-11-16 14:55 编辑

移动游戏【武林传】
游戏不是垃圾不垃圾。而是说讲的是里面的验证系统。和修改方法。

通常直接搜;onbillingfinish即可。
那么我就搜订购。来查找。如图。↓。

图1
1.jpg


图2
2.jpg


图3
3.jpg



图3
4.jpg


从图3中。可以看到。

判断结果返回是不是0x3e9.如果是,就跳到成功。
反之跳转到失败。

这种移动的游戏以前的模式是这种代码。

[Asm] 纯文本查看 复制代码
0x66
if-eqz v0 cond_22
0x68
if-eqz v0 cond_32
(if-eqz v0 cond_32跳转到失败)


现在的模式的代码概括是这种的;

[Asm] 纯文本查看 复制代码
0x3e9 (成功)
if-eqz v0 cond_22
成功的代码

cond_22
失败的代码


接着看成功和失败的2段代码;

成功代码:

[Asm] 纯文本查看 复制代码
    const/16 v0, 0x3e9 

    if-ne p1, v0, :cond_0     

    const-string v0, "\u8ba2\u8d2d\u7ed3\u679c\uff1a\u8ba2\u8d2d\u6210\u529f\u3002"

    invoke-direct {p0}, Lorg/meteoroid/plugin/feature/MMIAPSMS;->jR()V

    :goto_0
    invoke-virtual {p0}, Lorg/meteoroid/plugin/feature/MMIAPSMS;->getName()Ljava/lang/String;

    move-result-object v1

    invoke-static {v1, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    return-void



失败的代码;

[Asm] 纯文本查看 复制代码
    :cond_0  
    invoke-static {p1}, Lmm/sms/purchasesdk/SMSPurchase;->getReason(I)Ljava/lang/String;

    move-result-object v0

    iput-object v0, p0, Lorg/meteoroid/plugin/feature/MMIAPSMS;->asZ:Ljava/lang/String;

    new-instance v0, Ljava/lang/StringBuilder;

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

    const-string v1, "\u8ba2\u8d2d\u7ed3\u679c\uff1a"

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

    move-result-object v0

    iget-object v1, p0, Lorg/meteoroid/plugin/feature/MMIAPSMS;->asZ:Ljava/lang/String;

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

    move-result-object v0

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

    move-result-object v0

    invoke-direct {p0}, Lorg/meteoroid/plugin/feature/MMIAPSMS;->fail()V

    goto :goto_0



0x3e9是定义成功的。

if-ne p1, v0, :cond_0 属于判断。

既然知道了结果,那么修改的方法有几种。

第一种;
删掉; if-ne p1, v0, :cond_0 。  因为代码变换了位置。
所以删掉该句跳转。就不会跳转到cond_0。直接运行成功的代码。


第二种;
看成功和失败代码中的2句;

成功中的;

[Asm] 纯文本查看 复制代码
    invoke-direct {p0}, Lorg/meteoroid/plugin/feature/MMIAPSMS;->jR()V


失败中的;

[Asm] 纯文本查看 复制代码
   invoke-direct {p0}, Lorg/meteoroid/plugin/feature/MMIAPSMS;->fail()V

也就是说成功会跳转到方法;
jR()V 方法中。实现成功

失败会跳转到;
fail()V方法中。实现失败。

所以把jR()V替换fail()V同样可以破解成功。



第三种;
jR()V方法中的代码替换到fail()V中。同样可以达到破解成功。
要注意路径问题。

到此。教程结束。





免费评分

参与人数 1热心值 +1 收起 理由
相约一生 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

星空白菜 发表于 2015-2-2 22:33 来自手机
这样看很直观,支持一下
dtao 发表于 2015-2-1 22:29
圝◤初ф甡◥圝 发表于 2014-11-16 14:46
2217936322 发表于 2014-11-16 14:47
安卓的,没JAVA基础。
暖手季 发表于 2014-11-16 14:50

感谢分享
forrest888 发表于 2014-11-16 19:05
学习了感谢分享
huahua687 发表于 2014-11-21 10:45
支持支持一个
dgxtcsn 发表于 2014-11-22 13:28
支持一下,感谢
B6B6B6 发表于 2015-1-31 13:33 来自手机
感谢分享!
上官原石cjy 发表于 2015-1-31 19:14 来自手机
这个会了。。。。
失心c 发表于 2015-2-1 18:08 来自手机
。。。。。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 14:15

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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