吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 45175|回复: 87
收起左侧

[Android 原创] 《新人贴》初次尝试破解内购小游戏:切水果大作战

  [复制链接]
非己非人 发表于 2017-9-7 22:57
本帖最后由 非己非人 于 2017-9-7 23:05 编辑

新人第一次,感谢大神们提供的教程。
参考帖:破解参考:https://www.52pojie.cn/thread-632178-1-2.html ,去除可能会产生费用的危险权限: https://www.52pojie.cn/thread-620244-1-1.html
工具:Android Killer 、夜神模拟器
原版游戏下载地址:http://appstore.huawei.com/app/C10875454
破解后下载地址:https://pan.baidu.com/s/1gfCJoER 密码:egen         破解版本仅供学习,还请支持正版,谢谢。
1、首先还是先打开游戏,然后点击左上角的礼包,然后就出下面的这个东西,很明显,还是常用套路,搜索支付失败
4.png 1.png 2.png
2、使用Android Killer v1.3.1进行反编译,输入失败,然后在左下角的Aa选择文本转Unicode,发现MymmPay这个,感觉应该就是支付的那个文件了。
微信图片_20170907223021.png
3、打开这个MymmPay.smali,使用Android Killer v1.3.1中的JAVA图标查看源码。可以找到下面这几个代码,说明我们找对了,确实是这个,那么接下来怎么修改呢?
6.png 1.png
4、修改取消购买和购买失败的代码,我们再回到Android Killer v1.3.1中,查看代码
.method public payResultCancel()V
    .locals 2

    .prologue
    .line 1407
    iget-object v0, p0, Lcom/mydefinemmpay/tool/MymmPay;->psif:Lcom/mydefinemmpay/mypay/PaySuccessInterface;

    sget v1, Lcom/mydefinemmpay/tool/MymmPay;->payId:I

    invoke-interface {v0, v1}, Lcom/mydefinemmpay/mypay/PaySuccessInterface;->doPayCancel(I)V

    .line 1408
    const-string v0, "\u8d2d\u4e70\u53d6\u6d88"

    invoke-virtual {p0, v0}, Lcom/mydefinemmpay/tool/MymmPay;->showDebug(Ljava/lang/String;)V

    .line 1411
    return-void
.end method     ####上面为取消购买的代码内容

.method public payResultFalse()V
    .locals 3

    .prologue
    const/4 v2, 0x2

    .line 1378
    iget-object v0, p0, Lcom/mydefinemmpay/tool/MymmPay;->psif:Lcom/mydefinemmpay/mypay/PaySuccessInterface;

    sget v1, Lcom/mydefinemmpay/tool/MymmPay;->payId:I

    invoke-interface {v0, v1}, Lcom/mydefinemmpay/mypay/PaySuccessInterface;->doPayFalse(I)V

    .line 1379
    const/4 v0, 0x0

    iput-boolean v0, p0, Lcom/mydefinemmpay/tool/MymmPay;->paysuss:Z

    .line 1380
    const-string v0, "zhifu false"

    invoke-virtual {p0, v0}, Lcom/mydefinemmpay/tool/MymmPay;->Printlog(Ljava/lang/String;)V

    .line 1381
    iget v0, p0, Lcom/mydefinemmpay/tool/MymmPay;->falseTime:I

    add-int/lit8 v0, v0, 0x1

    iput v0, p0, Lcom/mydefinemmpay/tool/MymmPay;->falseTime:I

    .line 1384
    const-string v0, "\u8d2d\u4e70\u5931\u8d25"

    invoke-virtual {p0, v0}, Lcom/mydefinemmpay/tool/MymmPay;->showDebug(Ljava/lang/String;)V

    .line 1385
    iget v0, p0, Lcom/mydefinemmpay/tool/MymmPay;->falseTime:I

    if-ne v0, v2, :cond_0

    .line 1386
    invoke-static {}, Lcom/mydefinemmpay/tool/MessageUtil;->getInstance()Lcom/mydefinemmpay/tool/MessageUtil;

    move-result-object v0

    iget v0, v0, Lcom/mydefinemmpay/tool/MessageUtil;->ADOpen:I

    if-ne v0, v2, :cond_0

    .line 1387
    sget-object v0, Lcom/mydefinemmpay/tool/MymmPay;->adf:Lcom/mydefinemmpay/mypay/UUADSDKPayInterface;

    if-eqz v0, :cond_0

    .line 1388
    sget-object v0, Lcom/mydefinemmpay/tool/MymmPay;->adf:Lcom/mydefinemmpay/mypay/UUADSDKPayInterface;

    iget-object v1, p0, Lcom/mydefinemmpay/tool/MymmPay;->context:Landroid/content/Context;

    invoke-interface {v0, v1, p0}, Lcom/mydefinemmpay/mypay/UUADSDKPayInterface;->init(Landroid/content/Context;Lcom/mydefinemmpay/mypay/MymmPayInterFace;)V

    .line 1389
    const-string v0, "\u8d2d\u4e70\u5931\u8d25\u4e24\u6b21\u5f00\u542f\u5e7f\u544a"

    invoke-virtual {p0, v0}, Lcom/mydefinemmpay/tool/MymmPay;->showDebug(Ljava/lang/String;)V

    .line 1396
    :cond_0
    invoke-virtual {p0}, Lcom/mydefinemmpay/tool/MymmPay;->getLibKind()I

    move-result v0

    const/4 v1, 0x1

    if-ne v0, v1, :cond_1

    .line 1397
    invoke-static {}, Lcom/mydefinemmpay/tool/MessageUtil;->getInstance()Lcom/mydefinemmpay/tool/MessageUtil;

    move-result-object v0

    iget-object v0, v0, Lcom/mydefinemmpay/tool/MessageUtil;->sdkKind:Ljava/lang/String;

    const-string v1, "0"

    invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_1

    .line 1398
    invoke-virtual {p0}, Lcom/mydefinemmpay/tool/MymmPay;->getPayT()I

    move-result v0

    if-nez v0, :cond_1

    .line 1399
    sget-object v0, Lcom/mydefinemmpay/tool/MymmPay;->osif:Lcom/mydefinemmpay/mypay/OtherSDKPayInterface;

    invoke-interface {v0}, Lcom/mydefinemmpay/mypay/OtherSDKPayInterface;->pay()V

    .line 1404
    :cond_1
    return-void
.end method        ####一直到这,都是购买失败的代码


下面的是购买成功的代码:


.method public payResultSuccess()V
    .locals 8


    .prologue

    const/4 v7, 0x1


    const/4 v6, 0x0


    .line 1344

    invoke-static {}, Lcom/mydefinemmpay/tool/RecordOpreate;->getInstance()Lcom/mydefinemmpay/tool/RecordOpreate;


    move-result-object v3


    .line 1345

    sget-object v4, Lcom/mydefinemmpay/tool/RecordOpreate;->totalMoey:Ljava/lang/String;
中间太多了我就删了点。。。

    .line 1360

    iget-object v3, p0, Lcom/mydefinemmpay/tool/MymmPay;->dpv:Ljava/util/Vector;


    invoke-virtual {v3, v0}, Ljava/util/Vector;->remove(Ljava/lang/Object;)Z


    .line 1357

    add-int/lit8 v1, v1, 0x1


    goto :goto_0

.end method
由于我是新手,跳转什么有点搞不太懂,我就直接把购买成功的代码复制替换掉失败的代码。就是将.method public payResultSuccess()V后面一直到.end method的所有代码复制替换掉.method public payResultFalse()V、.method public payResultCancel()V后面的代码。注:基本上和我上面说的参考贴是一样的做法,乱的话,可以直接看上面的参考贴。
5、最后删除可能会产生费用的危险权限:
AndroidManifest.xml里搜索(或者可以直接搜索下面的这个)
android.permission.SEND_SMS
删掉
<uses-permission android:name="android.permission.SEND_SMS"/>

其实上面的参考贴里有两个,但是我只搜索到一个,所以我就删了一个,另外一个是什么表示完全不知道
6、最后打包编译,就可以快乐的玩耍了。支付的窗口如何跳过我还不知道,求大神讲解。最后取消购买,会显示支付失败,窗口关闭后会显示成功。强烈建议在飞行模式下打开,因为新手,不确定是否存在扣费的。
3.png

好了,第一次尝试破解游戏就这个样子了,破解没花多长时间,写个帖子,还真累。。。。

免费评分

参与人数 29吾爱币 +33 热心值 +29 收起 理由
deepdarkfantasy + 1 + 1 谢谢@Thanks!
Rokki + 1 + 1 成功了,哈哈哈,谢谢
Transcend + 1 + 1 谢谢@Thanks!
SYD缇缇丝 + 1 + 1 谢谢@Thanks!
hack_wangyu + 1 + 1 我很赞同!
vincentzpf + 1 谢谢@Thanks!
过林黑马 + 1 已答复!
唯有努力 + 1 + 1 同为新人,看你教程立马会了
葡萄demo + 1 + 1 我很赞同!
Lang图腾 + 1 + 1 我很赞同!
pro713 + 1 + 1 谢谢@Thanks!
Faithful丶o + 1 + 1 谢谢@Thanks!
会飞的丑小鸭 + 1 我很赞同!
qtfreet00 + 6 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
青年的故事 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
神秘哥 + 1 + 1 手机也可以做
kkpljat + 1 + 1 谢谢@Thanks!
hyc199844 + 1 + 1 用心讨论,共获提升!
still778 + 1 + 1 谢谢@Thanks!
forest666 + 1 + 1 已答复!
流年回忆 + 1 + 1 谢谢@Thanks!
alienhh + 1 + 1 我很赞同!
roturier + 1 + 1 谢谢@Thanks!
拂袖间百年过 + 1 + 1 用心讨论,共获提升!
xing4293160 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
小不点吃鱼 + 1 用心讨论,共获提升!
zt185 + 1 + 1 我很赞同!
201235865 + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
qaz003 + 3 + 1 来,支持新人,顶你一个。。

查看全部评分

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

狂侠先森 发表于 2018-3-15 06:48
同样的操作安卓模拟器无法打开。。。。。。
 楼主| 非己非人 发表于 2017-9-7 23:08
liunian4119 发表于 2017-9-7 23:07
网页的有没有什么思路?大神

别闹了,我这是新人贴,你要去找其他的大神了,毕竟我也是个新手。。。。。
164738777 发表于 2017-11-2 17:26
Lang图腾 发表于 2017-10-27 21:46
老哥,非常感谢 ,通过百度,终于解决了刚才的问题,刚才忘了保存尴尬,希望和我一起在学的小伙伴们一定要 ...

老哥, 那签名怎么办? 不签名的话手机不能安装吧?
klwhamwu 发表于 2017-9-8 10:10
aaaaaaaaaaaaaaaaaaaa

免费评分

参与人数 2吾爱币 -1 热心值 +1 收起 理由
狂爷幽弥 + 1 请勿灌水,提高回帖质量是每位会员应尽的义务!
LBD -1 请勿灌水,提高回帖质量是每位会员应尽的义务!

查看全部评分

liunian4119 发表于 2017-9-7 23:07
网页的有没有什么思路?大神
梦辰 发表于 2017-9-7 23:58
非己非人 发表于 2017-9-7 23:08
别闹了,我这是新人贴,你要去找其他的大神了,毕竟我也是个新手。。。。。

大佬 问问你啊 假如一个软件 是用激活码激活的安卓软件 该怎么破啊 a.a  教教我可以不 A.A
冥界3大法王 发表于 2017-9-8 07:31
能说个所以然来就不能算是菜瓜!
呆萌小吃货 发表于 2017-9-8 08:58
支持新人
roturier 发表于 2017-9-8 09:46
让人怀念的小游戏。。。
pholy 发表于 2017-9-8 09:56
新人支持一个!~
alienhh 发表于 2017-9-8 10:25

感谢楼主分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-12-23 12:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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