吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 17640|回复: 71
收起左侧

[Android 原创] 破解Unity3D游戏“滑雪大冒险”金币方法(非内购法)<详细>

  [复制链接]
夜步城 发表于 2019-1-28 17:12
本帖最后由 夜步城 于 2019-3-30 16:35 编辑

大家好,我又来了,最近感觉是不是有点高产同时感谢论坛里面所有教程贡献者。新春快乐。


一:本次破解游戏:滑雪大冒险
二:工具
    dnSpy、Android Killer(用于修改权限及签名)
三:开始教程

    本次游戏为Unity3D类型。所以内购方法可能有点不适合,所以咱们直接修改主要数据,不通过支付来获得金币。那么为什么要用dnSpy这个工具呢?论坛里也有不少的帖子关于破解Unity3D类型工具的选用,U3D有两种破解类型,其一是对libil2cpp.so破解修改,其二是对Assembly-CSharp.dll文件的修改,本次破解是第二种方法
    判别方法:拿到一个游戏,咱们先用解压工具打开这个apk,因为apk也相当于一个压缩文件嘛。咱们打开后看看assets\bin\Data\Managed\Metadata\目录下,如果全部或大部分是dll文件,那么咱们就用第二种方法,也就是用dnSpy来修改。
   至于第一种方法以及工具可以参考@缄默hl的《【Unity3D】游戏Music Racer 2.4.7金币破解https://www.52pojie.cn/thread-845377-1-1.html
下面咱们来进行修改
具体的话语,方法,我都在图片中,所以请大家好好看图哦


首先,咱们把Assembly-CSharp.dll文件复制到桌面或者你知道的地方,然后拖进dnSpy工具,根据经验,咱们来搜索get_coin,具体怎么搜索呢?像破解内购一样,可以搜索coin, getcoin, success, gold, get...等等  这还得看经验
如下图
2.png

接着如下图
3.png
用dnSpy工具的话,我们需要一些IL指令,咱们可以网上搜一下,本论坛也有相关的内容。
如果不懂IL指令也没有关系,直接把assets\bin\Data\Managed\Metadata这个目录
下的所有.dll文件复制到桌面或者其他你知道的地方,再把Assembly-CSharp.dll文件用dnSpy打开,就可以直接编辑C#语句了,这样更方便。
如果你只是单独的把Assembly-CSharp.dll文件放入dnSpy的话,修改C#会报错,不能通过编译。这里不懂的新手朋友可以在下面评论询问

接着如下图
4.png
继续
5.png

最后修改好了后,保存模块,把修改好的Assembly-CSharp.dll文件替换原来的Assembly-CSharp.dll文件。好了,接下来,咱们用Android Killer进行去除发短信,定位的权限,以及签名。

由于咱们直接修改的金币,故商店里的支付方式还是正常的,不要支付,否则就真的扣钱咯。

原版:https://pan.baidu.com/s/1cZ0Snnk9wKuhhyeO9j1w2g 提取码: sg5t

修改版:https://pan.baidu.com/s/1n33vAzZJdqwTQexQe5ohVQ 提取码: 6gdj

编辑,修改不易,希望支持

教程结束,谢谢

免费评分

参与人数 24吾爱币 +33 热心值 +22 收起 理由
乄Spectre乄 + 1 我很赞同!
Destiny丶Chen + 1 + 1 谢谢@Thanks!
guan + 1 + 1 我很赞同!
香港廉政公署 + 1 + 1 我很赞同!
kuigh + 1 + 1 谢谢@Thanks!
ACGN小角虫 + 1 + 1 我很赞同!
z14mian + 1 + 1 我很赞同!
傻乎乎的小白 + 1 + 1 热心回复!
MochengXi + 1 + 1 我很赞同!
qtfreet00 + 9 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
sunnylds7 + 1 + 1 谢谢@Thanks!
飞腾小子 + 1 + 1 我很赞同!
PwnU + 1 热心回复!
liuruiran + 1 + 1 谢谢@Thanks!
lookerJ + 1 热心回复!
plasd + 1 + 1 热心回复!
didi科学家 + 1 + 1 我很赞同!
独行风云 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
smile1110 + 1 + 1 我很赞同!
CrazyNut + 2 + 1 以前初中的时候最喜欢玩这个 可惜不会破解
jk2000love + 1 + 1 谢谢@Thanks!
King舞风 + 1 + 1 用心讨论,共获提升!吾爱因你而精彩
吱吱克里斯 + 1 + 1 我很赞同!
GenW + 2 + 1 一楼飘过,顶一下

查看全部评分

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

goddeath 发表于 2019-1-29 14:02
夜步城 发表于 2019-1-29 12:37
可能是你修改错了,源码发来看看

//代码里面没找到smali代码所以就用java的填上去
//下面是我找到的自以为最为重要的关键代码,因为里面的utf-8代码出现了“支付成功”“\u652f\u4ed8\u6210\u529f”还有“9000”,“\u652f\u4ed8\u5904\u7406\u4e2d支付取消”关键标识
//
[Java] 纯文本查看 复制代码
:pswitch_1
    iget-object v0, p0, Lcom/heepay/plugin/activity/logic/g;->a:Lcom/heepay/plugin/activity/logic/LogicHyNotityActivity;

    iget-object v1, p0, Lcom/heepay/plugin/activity/logic/g;->a:Lcom/heepay/plugin/activity/logic/LogicHyNotityActivity;

    const-string v2, "\u652f\u4ed8\u5b9dAPP\u5524\u8d77\u6210\u529f" [size=4]//支付宝唤起成功[/size]

    invoke-virtual {v1, v2}, Lcom/heepay/plugin/activity/logic/LogicHyNotityActivity;->d(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v1

    sget-object v2, Lcom/heepay/plugin/activity/logic/LogicHyNotityActivity;->v:Ljava/lang/Integer;

    invoke-virtual {v0, v1, v2}, Lcom/heepay/plugin/activity/logic/LogicHyNotityActivity;->a(Ljava/lang/String;Ljava/lang/Integer;)V

    iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;

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

    move-result-object v0

    invoke-static/range {v0 .. v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

    move-result v0

#if-nez v0, :cond_5[size=5]//小白欲将此处注释[/size]

    new-instance v0, Lcom/heepay/plugin/a/c;

    iget-object p1, p1, Landroid/os/Message;->obj:Ljava/lang/Object;

    invoke-virtual/range {p1 .. p1}, Ljava/lang/Object;->toString()Ljava/lang/String;

    move-result-object p1

    invoke-direct {v0, p1}, Lcom/heepay/plugin/a/c;-><init>(Ljava/lang/String;)V

    invoke-virtual/range {v0 .. v0}, Lcom/heepay/plugin/a/c;->a()Ljava/lang/String;

    move-result-object p1

    const-string v0, "9000"/[size=4]/重要标识[/size]

    invoke-static {p1, v0}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z

    move-result v0

    if-nez v0, :cond_1

    iget-object p1, p0, Lcom/heepay/plugin/activity/logic/g;->a:Lcom/heepay/plugin/activity/logic/LogicHyNotityActivity;

    const-string v0, "1"[size=6]//发现这里值为1,所以我把后面的类似处都改成1了[/size]

    const-string v1, "\u652f\u4ed8\u6210\u529f"[size=6]//支付成功[/size]

    :goto_1
    invoke-virtual {p1, v0, v1}, Lcom/heepay/plugin/activity/logic/LogicHyNotityActivity;->a(Ljava/lang/String;Ljava/lang/String;)V

    goto :goto_2

    :cond_1
    const-string v0, "8000"

    invoke-static {p1, v0}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z

    move-result v0

    if-eqz v0, :cond_2

    iget-object p1, p0, Lcom/heepay/plugin/activity/logic/g;->a:Lcom/heepay/plugin/activity/logic/LogicHyNotityActivity;

    const-string v0, "-3"

    const-string v1, "\u652f\u4ed8\u5904\u7406\u4e2d"[size=5]//支付处理中[/size]

    goto :goto_1

    :cond_2
    const-string v0, "6001"

    invoke-static {p1, v0}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z

    move-result v0

    if-eqz v0, :cond_3

    iget-object p1, p0, Lcom/heepay/plugin/activity/logic/g;->a:Lcom/heepay/plugin/activity/logic/LogicHyNotityActivity;

    const-string v0, "1"[size=5]//这里本是0[/size]

    const-string v1, "\u652f\u4ed8\u53d6\u6d88"/[size=4]/支付取消[/size]

    goto :goto_1

    :cond_3
    const-string v0, "6002"

    invoke-static {p1, v0}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z

    move-result p1

    if-eqz p1, :cond_4

    iget-object p1, p0, Lcom/heepay/plugin/activity/logic/g;->a:Lcom/heepay/plugin/activity/logic/LogicHyNotityActivity;

    const-string v0, "1"[size=5]//这里本身const-string v0, "-2"[/size]

    const-string v1, "\u7f51\u7edc\u672a\u8fde\u63a5\uff0c\u8bf7\u68c0\u67e5\u7f51\u7edc\u8bbe\u7f6e"

    goto :goto_1

    :cond_4
    iget-object p1, p0, Lcom/heepay/plugin/activity/logic/g;->a:Lcom/heepay/plugin/activity/logic/LogicHyNotityActivity;

    const-string v0, "1"[size=5]//这里本是-1[/size]

    const-string v1, "\u652f\u4ed8\u5931\u8d25"[size=4]//支付失败[/size]
    goto :goto_1
UC截图20190129140202.png
 楼主| 夜步城 发表于 2019-1-29 16:01
goddeath 发表于 2019-1-29 15:34
看样子好像是ak的问题,我在没改动 的情况下编译还是会出错,但是我下载的是论坛上@昨夜星辰2012大神的整 ...

可以啊。AK没有配置好,我的AK版本和你的一样。估计是apktool版本低了。这个是我的apktool
2019-01-29_155432.png

以及AK的JDK路径也要正确,这里我的JDK放在D盘,这个无所谓,只要AK里的JDK路径对应你电脑配置的JDK路径就行
1.png
戒色大师 发表于 2019-1-28 17:31
风轻然雨朦胧 发表于 2019-1-28 17:39
学习一下
17660625131 发表于 2019-1-28 17:47
66666666666666666666666
biutefo 发表于 2019-1-28 17:49
好,下来玩玩看
遥远的相似性 发表于 2019-1-28 18:24
谢谢分享
fate·fanxi 发表于 2019-1-28 18:50
学习一下
goddeath 发表于 2019-1-28 19:11
楼主,ak修改后无法编译打包怎么办?总是显示编译失败!
j296849823 发表于 2019-1-28 19:50
谢谢了 学习一下
安小懒 发表于 2019-1-28 21:00
厉害了好久没玩滑雪大冒险了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2024-4-28 21:22

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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