吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 38933|回复: 242
收起左侧

[Android 原创] TapTap某高分跑酷游戏实现自动奔跑教程-破解验证分析

    [复制链接]
CrazyNut 发表于 2018-12-27 18:04
本帖最后由 CrazyNut 于 2019-5-26 18:20 编辑

前言:
如果没基础的新手建议先观看:https://www.52pojie.cn/thread-832484-1-1.html
这款游戏同样是u3d的Mono打包方式
看论坛的教程一般都是修改无限金币or修改资源类的【之前我也发过】
所以打算出一篇开发游戏的思维修改游戏功能以达到 目的 的教程
【本来打算用md编辑帖子= = 实在是太不方便了】

如有错误的地方,还望各位大佬指出,以免误人子弟

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

如果你有过Unity3d的开发经验,那这篇教程对你来说就再简单不过了

先看看最后的效果


开搞:

玩过游戏的就知道,游戏有两个操作按钮,前面有敌人就按攻击,没敌人按跳跃,按错了就会出现失误。

先说一下我最开始的破解逻辑:
找到两个操作按钮的按钮事件,把判断失误的地方改为另一个按钮的按钮事件【相当于如果你按错了,不执行错误流程,自动帮你按另一个键】



定位到关键代码并处理反编译后的坑


然后把Assembly-CSharp和Assembly-CSharp-firstpass拖入dnspy


定位到一个关键的playercontrol类。  【顺便吐槽一下作者一个类写了3k+行的代码,真的强,自己看着不头痛吗= =】
里面可以看到JumpButtonAttackButton两个方法可以确定为跳跃按钮攻击按钮的按钮事件。

【上面的一系列操作看不懂的请先看帖子:https://www.52pojie.cn/thread-832484-1-1.html

【因为两个按钮事件内容几乎一样,我只截图了一个攻击按钮来进行分析】
可以看到图上并没有之前想的,在按钮事件中就进行了错误或者判断,而只是修改了一个状态的bool值,所以肯定有其他地方在进行判断。所以我们,右键isattack,分析,查看什么地方调用了然后进行的分析!


图上可以看到,除了按钮事件里面调用了这个值,
只剩下一个JudgePlayerMove的方法调用了这个状态,
那么这个方法肯定就是判断操作成功或者失败的方法了,
双击过去看看这个方法

我从代码里面找到了判断攻击按键的地方,如下图:

【因为判断内容几乎一样,我只截图了一个攻击按钮来进行分析】
有人就要问了,JudgePlayerMove这个方法是哪里调用的呢?


分析器分析一下可以看到,只在playercontrol类中的Update方法调用了这个方法

这里说明一下Unity中的Update方法是游戏每一帧运行的时候都会调用的方法,也可以理解为一个Timer或者说一个时钟

关键代码找到了,但是不急,先修复一下反编译后的坑

就算你什么都不修改,点编译的时候也出现了报错


可以看到Unity可以识别的特殊字符在Dnspy里面无法识别,我们需要自己修改一下这个变量

并处理好调用这个变量的地方

特殊字符串修改好之后又报错了


可以看到dnspy无法识别unity自带的Get_TimeScale方法 【具体原因未知】
Get_TimeScale这个方法呢是获取游戏运行速度倍率的

那我们只好自己写一个获取游戏运行速度倍率的方法给他填回去,如下图



点编译 OK 没问题了,可以开始修改之前找到的代码了


回到判断攻击状态的地方进行修改,修改后如下
【忘了可以看看上面图上的注释】


顺便把判断跳跃状态的地方改了

现在已经实现了:你乱按攻击或者跳跃键都可以疯狂的向前冲,不会出现失误,现在我们需要加上自动
之前已经说过了Update这个方法是游戏运行的每一帧调用的,而Update里面调用了JudgePlayerMove,那么也是每一 帧都在调用的了

所以我们只需要在JudgePlayerMove这个方法里面调用一个跳跃按钮事件。。相当于每帧都在点击按钮,如果你FPS是120那么相当于你一秒点120次跳跃按钮,嘿嘿,但是在这之前,我们先改一下按钮事件



按钮事件改好,我们回到JudgePlayerMove进行修改



好了,保存,替换回原路径,
上一下游戏,点攻击键有惊喜哦 嘿嘿!这样修改游戏的破解检测是检测不到的,因为只检测资源或者有跳过广告
看下面对破解验证的分析

我们再来说说游戏的破解验证和资源的修改:
其实我自己是先改了资源,发现被封了,才知道有破解验证,我教程就从破解验证开始分析!先看看改了资源后是什么样子


这个界面是关不掉的,所以我决定从UI方向入手
我找到了一个叫UiManager的类 【控制着所有的UI,又是3k多行的代码,作者真叼】
了可以看到里面有一个ClosedGongGaoMeau的方法,就是控制公告界面的!

可以看到里面有个IsCrack的变量控制着是否能关闭界面,所以我们找到给IsCrack赋值的地方,肯定就是破解验证的地方!


分析后发现一个ClearNativeScore类的CallBack方法在给他赋值,双击过去看看

通过注释可以看出来这是发现破解后执行操作的地方,这只是一个Callback的方法,看名字就知道肯定有其他地方还在调用这里,我们看看还有什么地方调用这个Callback


后面我发现ClearNativeScore这整个类都和防破解有关系,我们挨个分析他里面的方法【注意看我截图代码上的注释】



这里Unity的Start方法是在脚本最开始被激活时调用的


上面是清空积分的方法
看懂了上面的分析的话,心里面对于如何干掉验证应该有数了,现在我们看看游戏是如何储存金币的【我一开始简单的修改过,发现有很多问题】所以我决定直接找作者修改资源的地方,看他如何修改的,然后抄一份


我直接找到了存魂火的变量,然后分析,找到了一个作者修改魂火的地方。。从上面可以看出。。
作者通过了多次储存来想达到加密目的??不是很懂。。。反正照抄就对了

下面同时修改魂火和皮肤碎片,顺便干掉破解验证

回到ClearNativeScore 修改Start方法


上图把该改的地方都改了,并且有注释,最后,我还是把这些方法挨个分析,看调用的地方,修改掉以免出现其他问题



可以看到在打开天梯榜的时候会进行一次检测,这里直接改掉就好

但是改的时候又报错了= =又是特殊字符串的问题


这次太多了= = 不想改 = =直接改IL指令把,右键-编辑IL指令进去,把上面没用的指令全部NOP掉


修改后



好了完工! 不会弹出无法关闭的公告了= =
魂火也用不完



也许作者看到我上面的破解分析轻蔑一笑。。。
我觉得我可能还有没发现的地方。。不过暂时不影响自己玩就行了。。

预计更新:

广告移除教程。



如果帖子有帮助到你,请给个免费评分哦!谢谢



免费评分

参与人数 106吾爱币 +107 热心值 +96 收起 理由
wjmtgg + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
墨染紫衣任浮生 + 1 + 1 用心讨论,共获提升!
快乐交友 + 1 + 1 谢谢楼主分享
努力练习小菜鲲 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
千百度° + 4 + 1 大佬厉害哦大佬加油
小菜戏大神 + 1 + 1 好好的游戏,让你霍霍坏了~作者肯定笑不出来一定是emmmm
chinazzg + 1 鼓励转贴优秀软件安全工具和文档!
全职大师 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
KaiSama + 1 这是真的🐮🍺
loadingbo + 1 + 1 我很赞同!
lengyu + 1 我很赞同!
江左梅郎每场输 + 1 + 1 用心讨论,共获提升!
xiedengyu + 1 + 1 谢谢@Thanks!
zxy453326 + 1 + 1 我很赞同!
不是沉默i + 1 热心回复!
lizhehan + 1 + 1 我很赞同!
兮忘沃 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
yanjingtu + 1 + 1 用心讨论,共获提升!
135483 + 1 热心回复!
iteamo + 1 + 1 谢谢@Thanks!
HxiaoH + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
youhen233 + 1 + 1 用心讨论,共获提升!
天使狂 + 1 谢谢@Thanks!
zephyrr + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
wsygodpplike + 1 + 1 我一直以为dnSpy是逆net和C#的..
拉拉阿拉 + 1 + 1 用心讨论,共获提升!
Variazioni + 1 + 1 读书不多,只能用666来回复了。
yeye8888999 + 1 + 1 牛皮
goldengod + 1 + 1 热心回复!
cx2018 + 1 + 1 我很赞同!
tianxiawang + 1 用心讨论,共获提升!
h132011424 + 1 + 1 用心讨论,共获提升!
樱瓣归根 + 1 + 1 我很赞同!
LLHFV + 1 + 1 谢谢@Thanks!
人满为患 + 1 + 1 感谢如此实用的教程的出现。
bulingbuling + 1 谢谢@Thanks!
jin866 + 1 + 1 我很赞同!
guoxiaojie + 1 + 1 谢谢@Thanks!
大数据老手 + 1 + 1 热心回复!
enkidu + 1 + 1 热心回复!
山岭居士 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
天道勤酬 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
lsskid + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
gunxsword + 1 + 1 谢谢@Thanks!
独行风云 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
莽撞人 + 1 + 1 谢谢@Thanks!
whc2001 + 1 + 1 666
ATree + 1 + 1 我很赞同!
做人不老实 + 1 + 1 用心讨论,共获提升!
l1679668663 + 1 + 1 谢谢@Thanks!
lovezxc + 1 + 1 谢谢@Thanks!
无知的Hell + 1 + 1 666看着太爽了
Allyn0303 + 1 + 1 我很赞同!
soyiC + 1 + 1 谢谢@Thanks!
Tomcrack520 + 1 谢谢LZ,简直不要太爽
夜色丶迷惘 + 1 + 1 用心讨论,共获提升!
zjq + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
船长船长 + 1 用心讨论,共获提升!
DEED-Q + 1 + 1 谢谢@Thanks!
hnwang + 1 + 1 谢谢@Thanks!
InamiAnju + 1 + 1 谢谢@Thanks!
a半岁音书 + 1 + 1 谢谢@Thanks!
jnez112358 + 1 + 1 谢谢@Thanks!
南国新秀xc + 1 我很赞同!
你的秋裤 + 1 + 1 谢谢@Thanks!
一杯只姝小屁 + 1 + 1 我很赞同!
smile1110 + 3 + 1 我很赞同!
沼泽男子 + 1 + 1 用心讨论,共获提升!
帅气男生 + 1 + 1 用心讨论,共获提升!
wapj_gjy + 1 + 1 热心回复!
悍匪戾 + 1 + 1 热心回复!
52小西天 + 1 你灭了一个游戏公司,哈哈哈
sznojue + 1 + 1 谢谢@Thanks!
tao5133 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
chenjingyes + 2 + 1 用心讨论,共获提升!
Trwqnml + 2 + 1 我很赞同!
zhang54123 + 1 + 1 我很赞同!
Hefly + 1 我很赞同!
fan885 + 1 + 1 我很赞同!
dylbbb + 1 + 1 谢谢@Thanks!
天霸动霸tua + 1 + 1 谢谢@Thanks!
10号队长 + 1 + 1 我很赞同!
korzhao + 1 + 1 谢谢@Thanks!
别说我泄密 + 1 吾爱破解论坛因你更精彩!
babyxinloveyou + 1 + 1 谢谢@Thanks!
天上飞来一只 + 1 谢谢@Thanks!
笙若 + 1 + 1 谢谢@Thanks!
yiwai2012 + 2 + 1 这个可以加精了 膜拜Ofo
erebusx + 1 谢谢@Thanks!
麦米尔加弗德 + 1 + 1 楼主思路很清晰,厉害啊
ssama + 1 + 1 用心讨论,共获提升!
夏雨微凉 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
dxxd + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
1732501894 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Defender + 1 + 1 看了你的帖子,感叹你的技术之6,但是请问,苹果的呢?
wxl949389 + 1 + 1 Unity开发者表示emmmmmmm
sunnylds7 + 1 + 1 热心回复!
qaz003 + 1 + 1 哥,这脑洞真大呀。。另辟一条大道了。。
Ahix + 1 + 1 我很赞同!
梁宝宝 + 1 苹果的呢

查看全部评分

本帖被以下淘专辑推荐:

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

 楼主| CrazyNut 发表于 2018-12-28 00:20
木水刃墓 发表于 2018-12-28 00:15
有否破解版的安装包?

本贴仅供交流学习,技术讨论,请勿把本帖的技术用于破坏游戏平衡!
破解安装包的自己去找!不要问我要!
 楼主| CrazyNut 发表于 2018-12-28 15:29
mscsky 发表于 2018-12-28 15:08
大佬这是怎么回事呢

你是不是只解压一个dll  你要把Managed里面所有都解压出来  这一看就是少了UnityEngine.dll  看看这个先 https://www.52pojie.cn/thread-832484-1-1.html
 楼主| CrazyNut 发表于 2018-12-31 17:07
社会猫小咪 发表于 2018-12-31 16:08
最后一个问题 哈哈哈哈哈哈 为什么我写的跟你一样的获取时间 还是会报错

要写在Class的括号里面。。。
18509136851 发表于 2018-12-30 13:07
我试了成功了,谢谢大佬
ukonw3477 发表于 2018-12-27 18:28
火钳刘明!
吾空悟不空 发表于 2018-12-27 18:28
搬个小板凳看看

懿轩 发表于 2018-12-27 18:39
哇,这个是真的厉害
幻象 发表于 2018-12-27 18:55 来自手机
这个思路可以啊
meow_mtl 发表于 2018-12-27 19:37
这真的厉害
willgoon 发表于 2018-12-27 20:50
这样一点失误也没有会不会被检测出来

点评

不会啊= =现在排行榜都只能他们管理手动删除= = 【内部消息他们只能通过注册时间和你打的分来判断】。。。。  详情 回复 发表于 2018-12-27 20:54
 楼主| CrazyNut 发表于 2018-12-27 20:54
willgoon 发表于 2018-12-27 20:50
这样一点失误也没有会不会被检测出来

不会啊= =现在排行榜都只能他们管理手动删除= =  【内部消息他们只能通过注册时间和你打的分来判断】。。。。
平胸小蘿莉 发表于 2018-12-27 21:41
厉害了大佬
凌乱的思绪 发表于 2018-12-27 21:54
感谢楼主学习了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

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

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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