吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 21584|回复: 11
上一主题 下一主题
收起左侧

[Android 分享] 让移动MM商城的游戏修改后弹出支付成功界面的方法(而不是支付失败)

  [复制链接]
跳转到指定楼层
楼主
傲世V雄哥720 发表于 2014-12-19 14:41 回帖奖励
本帖最后由 傲世V雄哥720 于 2014-12-19 15:34 编辑

【让移动MM商城的游戏修改后弹出支付成功界面的方法(而不是支付失败的界面)的方法】

坛友的提问:

mm游戏怎样破解成点击购买就出现支付成功

http://www.52pojie.cn/thread-310608-1-2.html

解决方法如下:


移动MM商城的游戏,修改后,支付 弹出支付失败的界面。返回和确定即可成功。
但是"支付失败" 字样不好看。所以,要修改为支付成功。而不是使用替换图片的形式去修改。

[Asm] 纯文本查看 复制代码
以移动MM商城 暴力战神  为例,反编译后,找到如下代码。


.method private init(I)V   
    .locals 5

    const/16 v0, 0x3e9    【MM商城:成功的短代:1001(十六进制(0x3e9)→ 十进制(1001))】

    if-eq p1, v0, :cond_0  【走这里就跳向:支付请求发送成功,意思是跳向显示发送成功的图片(Log)】

    const/16 v0, 0x4be    【MM商城:失败的短代:1214(十六进制(0x4be)→ 十进制(1214))】

    if-ne p1, v0, :cond_2  【这里就跳向了支付失败,意思是如果支付失败就显示这个图片:支付失败的Log】

    :cond_0   【跳转到此:支付成功显示的文字↓】
    const-string v0, "支付请求发送成功"

    iput-object v0, p0, Lmm/sms/purchasesdk/ui/k;->j:Ljava/lang/String;

    const-string v0, "确 定"

    iput-object v0, p0, Lmm/sms/purchasesdk/ui/k;->l:Ljava/lang/String;

    invoke-static {}, Lmm/sms/purchasesdk/e/c;->getContext()Landroid/content/Context;

    move-result-object v0

    const-string v1, "mmiap/smsimage/vertical/icon_success.png"    【成功显示的图片:路径、png】

    invoke-static {v0, v1}, Lmm/sms/purchasesdk/ui/n;->a(Landroid/content/Context;Ljava/lang/String;)Landroid/graphics/Bitmap;

    move-result-object v0

    iput-object v0, p0, Lmm/sms/purchasesdk/ui/k;->f:Landroid/graphics/Bitmap;

    const v0, -0xa869b6

    iput v0, p0, Lmm/sms/purchasesdk/ui/k;->h:I

    invoke-static {p1}, Lmm/sms/purchasesdk/PurchaseCode;->getReason(I)Ljava/lang/String;

    move-result-object v0

    iput-object v0, p0, Lmm/sms/purchasesdk/ui/k;->k:Ljava/lang/String;

    const/4 v0, 0x1

    invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;

    move-result-object v0

    iput-object v0, p0, Lmm/sms/purchasesdk/ui/k;->g:Ljava/lang/Boolean;

    :goto_0
    iget-object v0, p0, Lmm/sms/purchasesdk/ui/k;->g:Landroid/graphics/drawable/Drawable;

    if-nez v0, :cond_1

    invoke-static {}, Lmm/sms/purchasesdk/e/c;->getContext()Landroid/content/Context;

    move-result-object v0

    const-string v1, "mmiap/smsimage/vertical/infobg.9.png"

    invoke-static {v0, v1}, Lmm/sms/purchasesdk/ui/n;->a(Landroid/content/Context;Ljava/lang/String;)Landroid/graphics/Bitmap;

    move-result-object v0

    if-eqz v0, :cond_1

    invoke-virtual {v0}, Landroid/graphics/Bitmap;->getNinePatchChunk()[B

    move-result-object v1

    invoke-static {v1}, Landroid/graphics/NinePatch;->isNinePatchChunk([B)Z

    new-instance v2, Landroid/graphics/drawable/NinePatchDrawable;

    new-instance v3, Landroid/graphics/Rect;

    invoke-direct {v3}, Landroid/graphics/Rect;-><init>()V

    const/4 v4, 0x0

    invoke-direct {v2, v0, v1, v3, v4}, Landroid/graphics/drawable/NinePatchDrawable;-><init>(Landroid/graphics/Bitmap;[BLandroid/graphics/Rect;Ljava/lang/String;)V

    iput-object v2, p0, Lmm/sms/purchasesdk/ui/k;->g:Landroid/graphics/drawable/Drawable;

    :cond_1
    return-void

    :cond_2    【跳转到此:显示支付失败的图片↓】
    const-string v0, "支 付 失 败"

    iput-object v0, p0, Lmm/sms/purchasesdk/ui/k;->j:Ljava/lang/String;

    const/4 v0, 0x0

    invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;

    move-result-object v0

    iput-object v0, p0, Lmm/sms/purchasesdk/ui/k;->g:Ljava/lang/Boolean;

    const v0, -0x47c4c5

    iput v0, p0, Lmm/sms/purchasesdk/ui/k;->h:I

    iget-object v0, p0, Lmm/sms/purchasesdk/ui/k;->a:Ljava/util/HashMap;

    if-nez v0, :cond_3

    const-string v0, "ResultDialog"

    new-instance v1, Ljava/lang/StringBuilder;

    const-string v2, "mReturnObject null order fail ="

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

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

    move-result-object v1

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

    move-result-object v1

    invoke-static {v0, v1}, Lmm/sms/purchasesdk/e/d;->c(Ljava/lang/String;Ljava/lang/String;)V

    invoke-static {}, Lmm/sms/purchasesdk/e/c;->getContext()Landroid/content/Context;

    move-result-object v0

    const-string v1, "mmiap/smsimage/vertical/icon_info.png"

    invoke-static {v0, v1}, Lmm/sms/purchasesdk/ui/n;->a(Landroid/content/Context;Ljava/lang/String;)Landroid/graphics/Bitmap;

    move-result-object v0

    iput-object v0, p0, Lmm/sms/purchasesdk/ui/k;->f:Landroid/graphics/Bitmap;

    :goto_1
    invoke-static {p1}, Lmm/sms/purchasesdk/PurchaseCode;->getReason(I)Ljava/lang/String;

    move-result-object v0

    iput-object v0, p0, Lmm/sms/purchasesdk/ui/k;->k:Ljava/lang/String;

    const-string v0, "确 定"

    iput-object v0, p0, Lmm/sms/purchasesdk/ui/k;->l:Ljava/lang/String;

    goto :goto_0

    :cond_3
    const-string v0, "ResultDialog"

    new-instance v1, Ljava/lang/StringBuilder;

    const-string v2, "mReturnObject order fail ="

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

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

    move-result-object v1

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

    move-result-object v1

    invoke-static {v0, v1}, Lmm/sms/purchasesdk/e/d;->c(Ljava/lang/String;Ljava/lang/String;)V

    invoke-static {}, Lmm/sms/purchasesdk/e/c;->getContext()Landroid/content/Context;

    move-result-object v0

    const-string v1, "mmiap/smsimage/vertical/icon_false.png" 【失败的图片:路径和png】

    invoke-static {v0, v1}, Lmm/sms/purchasesdk/ui/n;->a(Landroid/content/Context;Ljava/lang/String;)Landroid/graphics/Bitmap;

    move-result-object v0

    iput-object v0, p0, Lmm/sms/purchasesdk/ui/k;->f:Landroid/graphics/Bitmap;

    goto :goto_1
.end method




通过以上代码。我们就可以知道,这里就是支付的时候;弹出的logo 信息的判断。

要做的是:
如何修改为:修改内购后。然后点击支付让它弹出 "支付成功"的界面。

只要删除代码中的:

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

    if-ne p1, v0, :cond_2  


删除这段代码。想必都很熟悉了。这个 跳转实现就跳向了 :支付失败的打印信息。


那么,如何快速找到这段代码:

我们只要搜索关键字   “支付请求发送成功”  

然后找到的方法就是了。如果搜索不出来,那么这样的游戏就改不了弹窗界面。因为版本不同。


如图。搜索的结果,进行修改即可。


下面就是成功的截图。如下。



从刚刚的代码我们可以看到,它原本如果支付成功(修改)后,应该显示的是:支付请求发送成功。

那么我们把 “支付请求发送成功“   ,换为  ”支付成功“     


  其他的。还可以换成”支付成功,  XXX破解   “

修改完成以后测试。游戏就会显示  :支付成功。


免费评分

参与人数 1热心值 +1 收起 理由
低调的大叔 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.

查看全部评分

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

推荐
dqy13020940 发表于 2014-12-30 22:05
乐天的方法是在方法名
.method public static setStatusCode(I)V
    .locals 0

    sput p0, Lmm/purchasesdk/core/PurchaseCode;->statusCode:I

    return-void
.end method

中间插入一句const/16 v0, 0x3e9

变成.method public static setStatusCode(I)V
    .locals 0
       
        const/16 v0, 0x3e9

    sput p0, Lmm/purchasesdk/core/PurchaseCode;->statusCode:I

    return-void
.end method

这样百分百直接成功,你的方法有些游戏搜不到,原理有什么不同呀
沙发
zlg112699104 发表于 2014-12-19 15:01
3#
傻了自己 发表于 2014-12-19 15:02
4#
 楼主| 傲世V雄哥720 发表于 2014-12-19 15:08 |楼主
本帖最后由 傲世V雄哥720 于 2014-12-20 08:18 编辑

你仔细看了帖子?

坛友的问题。

头像被屏蔽
5#
yyz219 发表于 2014-12-19 16:33
提示: 作者被禁止或删除 内容自动屏蔽
6#
相约一生 发表于 2014-12-21 09:30 来自手机
很不错的帖子,楼主很强大!下次多出一些解决签名校验的那就更好了!!!
7#
dqy13020940 发表于 2014-12-30 21:59
熊二你太帅了
9#
1600807880 发表于 2014-12-31 00:17 来自手机
自己试了试,成了!!
10#
B6B6B6 发表于 2014-12-31 17:47 来自手机
感谢分享!!!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 11:10

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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