首页
社区
课程
招聘
[求助] 自己做的Unity游戏屡遭破解,请问是如何做到的.
发表于: 2018-6-12 21:51 18040

[求助] 自己做的Unity游戏屡遭破解,请问是如何做到的.

2018-6-12 21:51
18040
Hello 求助大神给指点个方向. 跪谢.

我用Unity做了一款游戏. Update了几个版本 每个版本都被破解. 想了解一下 那位破解我游戏的大神是如何做到的.

我先说下我了解的破解思路

首先我游戏是il2cpp方式的. 所以应该是 Il2CppDumper 一下 libil2cpp.so 然后从里面找一些关键的key作为切入点.

然后直接IDA 修改, 然后Hook我相应的函数 做出mod来.

==================

我的策略是混淆代码,忽略其他方面的防御(也没这个能力,虽然用了360加固 和没用也没啥区别.)



前几个版本 代码混淆的不够彻底,并且代码中会存在一些敏感性的Key存留. 比如Attack, Blood Exp 等等

当前线上这个版本 我自认为

- 80%以上的代码 应该都被混淆了. 包括Mono自己的MonoBehaviour
- 对敏感性Key重新命名了
- 内置关键字符串也进行了加密
- 之前代码中的异常Log 比如 "Can't find item id: {0} xxx" 也全部替换为了 "DfKUkjblMyAJliCf {0} xxx" 这种以随机字符串为key的输出.


==================

但是游戏依旧还是被破解 加入Mod了. 并且 是从很多方向全部加入Mod了

-全图
-移动加速
-不减血
-随意加武器
等等.

这些逻辑处理点在代码中分部的都很散.

===================

我想知道的是

这位大神是如何找到 切入点的呢?

是动态调试么? 可以这些逻辑不像那种安卓应用, 和游戏逻辑都绑的很死, 如何能动态调试呢?

或者是因为我之前 没有加密这么全面的版本 已经泄露出去了. 可以基于原版和新版进行比较, 从而在新版中找到相应的突破口? 


=====================


对于这种破解,应该如何防护呢? 我的意思是 在代码层面上如何防护呢? 换句话说 就是写代码时候应该注意些什么?

从外围 加固啊, 反动态调试啊. 这些有点太深了. 我觉得就算我在这些方面努力努力 可能大于大神来说 也和裸奔没啥区别吧.

毕竟 那么多第三方加固 感觉和纸糊的没啥区别啊...


跪谢大神指导.

APK下载地址: ae8K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1L8%4N6F1L8r3!0S2k6q4)9J5k6h3A6W2k6r3W2Q4x3X3c8Y4j5h3#2W2M7#2)9J5k6h3y4G2L8g2)9J5c8X3q4H3K9%4y4@1L8%4u0W2i4K6u0r3b7@1&6Q4x3X3c8Y4i4K6g2X3P5r3y4*7N6$3y4Q4x3V1k6j5b7#2A6i4b7#2)9#2k6W2j5I4i4K6u0W2x3e0m8Q4y4h3k6s2g2#2)9J5k6h3q4H3K9H3`.`.








[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (21)
雪    币: 12504
活跃值: (3093)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
你这样搞,自己越写越费劲呀。好好的代码越写越乱,逐渐自己的游戏都废了。如果不是网游,改就改吧
2018-6-13 00:12
0
雪    币: 592
活跃值: (192)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
111
最后于 2018-6-13 03:53 被aabiaobiao编辑 ,原因:
2018-6-13 02:28
0
雪    币: 272
活跃值: (209)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
就像你自己说的,对于大神来说,都是裸奔。
如果是单机游戏,那没啥好办法。
如果是网游,可以在服务端做校验,增加外挂检测啥的。
2018-6-13 08:56
0
雪    币: 4687
活跃值: (388)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
可以拿  mod  分析一下,看看他的实现,  针对mod可以制作一些检测手段。  如果存在不混淆版本,有可能作为混淆函数比对的参考,建议可以把核心逻辑变化一下。
2018-6-13 09:48
0
雪    币: 914
活跃值: (2768)
能力值: ( LV5,RANK:68 )
在线值:
发帖
回帖
粉丝
6
你要知道,不能反编译的游戏都能破解,做出来外挂
更何况你这样的.
2018-6-13 10:01
0
雪    币: 82
活跃值: (104)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
1、混淆的不能混淆接口API吧,而且根本没必要看你混淆的代码
2、破解不一定要反编译,动态注入一样能修改数据,更不要说现在市面上那么多修改器加速器,搜数据值就行了
3、加固请对症下药,U3D游戏应该选择对应的加固方案
2018-6-13 10:17
0
雪    币: 18
活跃值: (1064)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
8
有请各个APK加固厂商过来打个广告。
最后于 2018-6-13 11:39 被猪会被杀掉编辑 ,原因:
2018-6-13 11:39
0
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
感谢各位回复

-  新游戏会更多的加入服务端的验证,  对于现有的项目  其实更多的还是技术上的好奇  大神是如何做到的.
-  内存修改这部分,当前项目应该已经防护的挺好的了.  关键位置的数据都有修改防护并且还有修改检测.    这部分相对容易一些

现在有两点比较疑惑的地方

-  如果大神是靠之前我没有完全混淆的代码和现有代码做对比  ,  这个在IDA里面很方便做到么?  还是有什么其他的工具?

-  @RorschachL  提到的不反编译直接动态注入  这个不是很理解,  比如Mod中有一项是  攻击伤害x2  的修改.  我理解的方式是他需要找到我那个攻击力计算的具体代码,然后Hook住那个函数.  在函数返回时候做相应处理.  但是这个函数他又是咋找到的呢?

关于IDA动态调试,我没自己试过  不过对于一个游戏项目  每帧都有多个Actor在不停的Tick,  下断点然后找出主角相关的逻辑  这个应该不容易吧.(并且这还是该Mod诸多修改中的其中一小项)

我的意思是  我们的游戏也没那么出名,然后看破解更新的时间也很快.  应该就是大神没事儿  随意搞搞,  分分钟就给我破了那种... 

是不是还有什么  我不太了解的破解方式?  麻烦哪位大神能给指个大概方向.  我好学习学习  开阔开阔自己的眼界

再次感谢各位回复.

PS:  哪位大神有兴趣可以试着破解一下我链接给出的那个APK么? 
2018-6-13 12:16
0
雪    币: 82
活跃值: (104)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
10
oldking 感谢各位回复[em_1] - 新游戏会更多的加入服务端的验证, 对于现有的项目 其实更多的还是技术上的好奇 大神是如何做到的. - 内存修改这部分,当前项目应该已经防护的挺好的了. 关键位置的 ...
现在外挂工具党很多的,都不需要懂什么技术,你说的破解,比如这样算吗

2018-6-13 16:06
0
雪    币: 51
活跃值: (146)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
我们公司游戏产品就是  用的  爱加密  的第六代加固,说什么双重VMP保护技术,我也不太懂。目前还没发现盗版的游戏,可能是游戏不够火把,哈哈
2018-6-13 16:18
0
雪    币: 15
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
多跟逆向大牛交流一下,基本都会给出意见,之后游戏会加强不少
2018-6-13 16:24
0
雪    币: 1030
活跃值: (374)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
楼主所说的被破解,到底指的包被破了?还是发现作弊了?

就像楼上几位说的,对于手游,大多数都不是直接破解你的包,通过外挂就能够作弊
2018-6-13 16:37
0
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
ForrestV 楼主所说的被破解,到底指的包被破了?还是发现作弊了? 就像楼上几位说的,对于手游,大多数都不是直接破解你的包,通过外挂就能够作弊
破解可以  搜下  GG大玩家  里面是挂Mod    可以加速,  无敌,  攻击x2,  任意获得物品    超长攻击距离等等..   
2018-6-13 19:01
0
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
RorschachL 现在外挂工具党很多的,都不需要懂什么技术,你说的破解,比如这样算吗
@RorschachL 
你这个是  改内存的么?  这个应该只是改了一个显示层的数字吧,  逻辑层  八门神器  GG修改器  那些  直接搜应该是搜不到...
2018-6-13 19:03
0
雪    币: 82
活跃值: (104)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
16
不是显示层的,这数字一直再降,GG大玩家都能修改原理差不多  @oldking
2018-6-13 19:47
0
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
晕  我刚才用八门神器试了一下  直接搜索数值就能改了..      看来我之前测试的那个修改器  有点low了  哈..    这个我再去研究研究.    为啥他能直接查到我真实数值的...      不过GG大玩家的修改原理  应该和这个不同吧  @RorschachL

毕竟像有些功能的修改,  比如随意加物品,  超远距离攻击    这些有数值  但是是Meta文件  加载进来就不会变的  靠改变搜索应该是搜不到的.
2018-6-13 21:48
0
雪    币: 82
活跃值: (104)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
18
oldking 晕 我刚才用八门神器试了一下 直接搜索数值就能改了..[em_2] 看来我之前测试的那个修改器 有点low了 哈.. 这个我再去研究研究. 为啥他能直接查到我真实数值的... 不过GG大玩 ...
gg大玩家只是搜索的方式不同,但最终结果还是对内存修改,有些固定的数值确实通过改变数值无法得到,但既然都是固定的,每次加载的位置可能差不多,他可以一步步尝试进行修改
2018-6-13 22:03
0
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
RorschachL gg大玩家只是搜索的方式不同,但最终结果还是对内存修改,有些固定的数值确实通过改变数值无法得到,但既然都是固定的,每次加载的位置可能差不多,他可以一步步尝试进行修改
不会不会  如果GG要是用这种方式搞  那么多游戏  要搞死他们了..  并且有些是直接Hack掉了我相关的业务逻辑的.    比如全地图解锁,  然后加任意物品  他们是直接有按钮  点一下就会  调用到我底层的加物品逻辑.  这个靠改内存应该是实现不了的.
2018-6-13 22:10
0
雪    币: 1030
活跃值: (374)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
oldking 破解可以 搜下 GG大玩家 里面是挂Mod 可以加速, 无敌, 攻击x2, 任意获得物品 超长攻击距离等等..
几乎所有的外挂都需要root权限,除了做基础防护之外,你还需要对APP当前运行的环境做检测,root、模拟器、等
2018-6-14 10:31
0
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
ForrestV 几乎所有的外挂都需要root权限,除了做基础防护之外,你还需要对APP当前运行的环境做检测,root、模拟器、等
现在应该已经不用root权限了    可以看下  八门神器  还有GG大玩家.    我看他们的方式  应该是自己起了一个沙盒环境(这就是你说的模拟器吧?), 
然后app直接运行在沙盒环境中.  这块不是很了解..  忽胡乱猜测的.   
但是现在  确实各种Mod和内存修改  都  无需Root权限即可.  只需一个悬浮窗权限就行了.
2018-6-14 10:39
0
雪    币: 1030
活跃值: (374)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
oldking 现在应该已经不用root权限了[em_1] 可以看下 八门神器 还有GG大玩家. 我看他们的方式 应该是自己起了一个沙盒环境(这就是你说的模拟器吧?), 然后app直接运行在沙盒环境中. 这块 ...
跟悬浮窗没关系。

它们想要运行时修改你,必须有相应的权限:root(对应root手机……很多外挂后台会主动root设备的)、或同级权限(更多的是双开,也就是你说的沙箱)、或PC上的模拟器(这种模拟器会给root权限)

不管是数值修改,还是什么外挂脚本,本质上都是修改你的内存,有权限修改是第一步
2018-6-14 12:02
0
游客
登录 | 注册 方可回帖
返回