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

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

领取今日签到奖励
查看: 5580|回复: 148
上一主题 下一主题

[Android 原创] U3D游戏《跳舞的线》破解详细教程

  [复制链接]
跳转到指定楼层
楼主
发表于 2018-12-2 23:04 | 只看该作者 回帖奖励 |倒序浏览
本帖最后由 CrazyNut 于 2018-12-2 23:22 编辑

前言


先提两个问题:
1.Dnspy怎么可以更方便的搜索字符串,我发现只能在当前脚本里面搜内容,并不知道怎么直接搜dll里面的方法名
2.有没有什么办法可以动态调试

膜拜一下各位大佬


《跳舞的线》这个游戏用了u3d的Mono打包方式,不加密的话反编译出来就和源码一样【按理说想怎么改游戏就怎么改】
  但是脚本太多,要找到关键的脚本就需要去猜测作者的思维,作者对脚本的命名方式,找的到脚本怎么好说,找不到只能干瞪眼


  因为自己也在用U3D来开发,所以我这篇文章主要说破解时候的思路,代码修改方面就不详细解释

进入正题

准备工具

Dnspy,Androidkiller,一款能打开apk的压缩工具
一点点的英语基础和一点点的语言基础

判断是否是U3D的游戏,并且是不是Mono打包

没什么好说的看到路径\assets\bin\Data\Managed下有
Assembly-CSharp.dll这个文件,肯定就是Unity的Mono打包方式的作品了


思路流程
首先我们要看一下游戏,决定自己要破解的东西


这款游戏我们要搞的就是

能量-金币-广告-内购【内购没干掉这都是后话了= =】


破解流程:
Managed文件夹下所有dll拖进dnspy从中找到关键函数,修改代码以达到目的
而游戏的关键脚本通常都在Assembly-CSharp.dll中,所以通常我们只用关注这个dll里面的脚本就行



开搞


Managed文件夹下所有dll解压到同一个文件夹
然后把Assembly-CSharp和Assembly-CSharp-firstpass拖入dnspy


然后可以看到有这么多的类





从类名入手,先找找有没有什么特别的名字,比如money,playerdata之类的东西


这里可以看到
Assembly-CSharp-firstpass只有两个没什么关系的东西,那就重点关注Assembly-CSharp里的那么多类


我找到了一个叫Playerdata的东西= =结果里面并没有储存什么钱一类的东西
然后类里面我也没发现其他和我们要破解的内容有关系的类


然后打开最上面-的那个类,和游戏有关的脚本一般都在里面!
至于为什么知道,自己打包过一次看看就知道了。。


找到修改金币和能量的地方

然后我在这里面看到一个名字有趣的脚本叫ShopPanel
应该就是商店界面的意思,既然是商店界面,里面肯定有和购买有关的代码


我们看到这个ShopPlane的脚本里面有一个Buy的方法
肯定就是购买相关的方法了,具体看下面图


然后我们去看一下这个getcoin的地方



开始修改

OK金币就改好了


改能量

我们看到我们之前修改的金币的类Monetyzation
ConisController【金币管理】[刚刚修改的脚本] 和 EnergyController【能量管理】这两个脚本
所以
EnergyController肯定就是我们要修改能量的地方


顺便一说- - 这个人和我的命名习惯很像欸= =什么的控制脚本就是xxController
下面还看得到LuckyBoxController 【幸运盒子管理】和SpecialGiftController【特殊礼物管理】
这两个脚本就是控制游戏里面游戏抽奖的东西,不过既然都无限金币了,我也没有去改什么中奖概率什么的= =有兴趣的可以自己去改一改

继续看EnergyController

修改后

能量修改完毕上游戏看看



好的,看来金币和能量都修改成功了,广告还是没搞掉,现在开始搞广告


搞广告
同样的方法 - - 通过名字找脚本广告嘛,多半和AD有点关系 = =找到和AD有关的脚本

从上面可以看到作者真棒 命名习惯都是一样的 AdsController 明摆着就是 【广告管理】啊

打开这个脚本看到有这么多方法,挨个挨个的看具体是干什么的。。
直到看到一个方法。。


可以很明显的看出AreAdsBlocked这个Bool值就是控制是否是买了那个区去广告的判断标准,true就是为购买,所以去看看这个Bool值赋值的地方

这个直接修改返回值为true就行

ok 上游戏看看


好的可以看到广告购买的这一项已经没有了,判断是你已经购买了
但是


这种地方还有观看广告免费解锁的地方,
点这个按钮就会开始看广告,看完后关卡就解锁,所以我们要改一下这个地方

目标很明确,思路也应该很清晰,找到播放广告的地方,直接改成播放成功


回到这个AdsController看里面的方法,里面有

WatchVideo 【观看视频】
VideoWatchFailed 【视频观看失败】
VideoWatchedWithSuccess【视频观看成功】
VideoWatchCancelled 【视频观看被关闭】

这些方法,已经很明显了,看看代码



轻微改动一下观看成功中的代码,然后直接把watchvideo里面的所有代码删了换成播放成功的就行

ok 现在点击广告就不会播放广告了,直接进入播放完毕的流程


最后把
Assembly-CSharp.dll替换进原路径,用Androidkiller签一下名完毕

成品链接:https://www.52pojie.cn/thread-832018-1-1.html



如果帖子有帮助到你,给一个免费评分支持一下噢!Thanks!








免费评分

参与人数 43吾爱币 +42 热心值 +37 收起 理由
spll6 + 1 + 1 我居然能看懂80%,震惊了
dryzh + 1 + 1 用心讨论,共获提升!
登徒子道友 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
WtFly + 1 + 1 热心回复!
syj000 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
没想好昵称 + 1 + 1 我很赞同!
g321 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
寂痕 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Ai5 + 1 热心回复!
KL泡泡调 + 1 + 1 谢谢@Thanks!
sky59998 + 1 感谢您的宝贵建议,我们会努力争取做得更好!
227376 + 1 + 1 我很赞同!
WyattHuang + 1 + 1 热心回复!
巧克力苏菜 + 1 谢谢@Thanks!
悍匪戾 + 1 + 1 热心回复!
183025零 + 1 + 1 厉害了!大佬!
西瓜小刚 + 1 + 1 谢谢@Thanks!
zhangyuepeng869 + 1 我很赞同!
Qiyu_N + 1 + 1 我很赞同!
小朋友呢 + 2 + 1 热心回复!
#:BadBoy + 1 我很赞同!
XhyEax + 1 + 1 很详细,赞一个
冰的眼淚 + 1 + 1 谢谢@Thanks!
光之守护天使 + 1 + 1 用心讨论,共获提升!
warhome + 1 + 1 谢谢@Thanks!
陪你到以后、 + 1 + 1 谢谢@Thanks!
zhang53000 + 2 + 1 谢谢@Thanks!
kututu119 + 1 + 1 谢谢@Thanks!
孤枕难眠 + 1 谢谢@Thanks!
bolipapadu + 1 谢谢@Thanks!
时光TIME + 1 + 1 谢谢@Thanks!
lihaohua + 1 + 1 我很赞同!
stars-one + 1 + 1 我很赞同!
lookerJ + 1 我很赞同!
luckyduanyh + 1 + 1 热心回复!
冥界3大法王 + 1 我很赞同!
vvking8 + 1 谢谢@Thanks!
夏沫梦影 + 2 + 1 热心回复!
xwzj20170829 + 1 + 1 谢谢@Thanks!
我叫言沫曦 + 1 + 1 热心回复!
qaz003 + 1 + 1 细心~~~~
Gentlewang + 3 + 1 留名膜拜
De蓝 + 1 热心回复!

查看全部评分

本帖被以下淘专辑推荐:

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

推荐
发表于 2018-12-10 16:59 | 只看该作者
这种帖子真不错,充分考虑考虑了坛里成员的水平,编排得很容易看懂,图片里还有中文注释。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

推荐
发表于 2018-12-5 19:14 | 只看该作者
CrazyNut 发表于 2018-12-5 17:55
大佬在说啥啊 0.0    好像学习一下大佬说的东西 有什么教程可以推荐学习没 谢谢!! ...

看你要改什么
改内存 :
dump源码,IDA远程动态调试,不过mono游戏在android端基本上都是JIT运行机制,游戏脚本编译一次就不再触发编译了,所以你要动态hook里面的函数【hook框架我一般都用firda,强大的很】,首先要做的就是去除已编译标识,此时,你就可以愉快的动态改内存了,关注的两个函数:
mono_jit_compile_method: 负责IL中间语言到机器码的编译过程,hook 该函数,内存随便改。
mono_g_hash_table_lookup:mono已编译过的函数存放在一张hash表中,通过hook改函数,可以去除编译标识,触发再次编译。
改封包:
首先搞明白游戏采用的那种封包协议,一般常见的封包组织方式:JSON、MessagePack、Protobuf,解码一下就好了,我改封包一般用mitmproxy + postern用的很爽。这么改起来要多变态有多变态,

改封包比改内存来的猛的多,俗话说的好,3D游戏可飞天,2D游戏可无敌, 最后楼主看看《逆向从入门到改行》


点评

大佬太强了 感谢大佬 我还是个萌新 有机会慢慢学习 膜拜一下大佬 感谢  详情 回复 发表于 2018-12-5 19:39

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

沙发
发表于 2018-12-2 23:23 | 只看该作者

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

藤椅
发表于 2018-12-2 23:23 | 只看该作者
我来抢个沙发

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

板凳
发表于 2018-12-3 00:08 | 只看该作者
膜拜,学习了

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

报纸
发表于 2018-12-3 00:15 来自手机 | 只看该作者
很好,谢谢

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

地板
发表于 2018-12-3 00:30 | 只看该作者
不错的教程,支持一下楼主

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

7#
发表于 2018-12-3 01:06 | 只看该作者
思路好浅析。。。。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

8#
发表于 2018-12-3 01:08 | 只看该作者
这个游戏好玩么?

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

9#
发表于 2018-12-3 01:44 | 只看该作者
为何我修改过后点击游戏中的 免费体验 这个按钮没有反应了呢

点评

我第一次改也不知道改了哪里就这样了。。。你再理一下。。慢慢看看  详情 回复 发表于 2018-12-3 09:07

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

10#
发表于 2018-12-3 05:08 | 只看该作者
额。。。这什么鬼游戏。。。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则


免责声明:
吾爱破解所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Service@52PoJie.Cn

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

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

GMT+8, 2018-12-10 23:16

Powered by Discuz!

© 2001-2017 Comsenz Inc.

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