本帖最后由 lona 于 2018-7-31 02:17 编辑
来自群组: PluginsCDTribe
| 【MC反作弊开发日记】
|
大佬 前排支持
支持楼主!
LZ我愿意找你定制反作弊,私聊我留个联系方式开个价吧。
看到了吧,这就是大佬 (Ymer不支持XP。不支持sponge。差评= =)
期待大佬的教程
看到cpp就进来了
有生之年作品系列
一门都不会也要凑个热闹
坐等第一章
(我现在就担心你这个教程会像我之前那个红石计算机的教程帖一样黄了)
(抓紧时间填内容啊,不然几天之后你再发分帖就没几个人看了)
(我现在就担心你这个教程会像我之前那个红石计算机的教程帖一样黄了)
(抓紧时间填内容啊,不然几天之后你再发分帖就没几个人看了)
噫?我账号解了?emm,再也不去茶馆了。
进入正题,首先告诉你的是,客户端永远不可能完全防止破解,只能增加成本。
昨晚和4z大佬讨论过这个问题来着。
我用fernflower反编译过anticheat 3.4,大概了解了其原理。
其实就是遍历所有loaded mod 包括了fml,forge,mcp,各种mods,然后从class的protecteddomain找出jar位置,再计算md5/sha1/sha256 digest, 当然有些是坑,比如mcp就没有文件位置。
anticheat至少我看到过的那个版本还是有个问题的,可以被重放。
anticheat用了simplenetworkchannel,底层是netty,那么只要去重新打包netty,把处理函数改一改,改成这样的逻辑,当channel名符合预设时,监听你的请求,录下来,然后再把你截胡,重放给服务器老的消息,这样你不管干什么了,上层的ac是察觉不到的,这样就可以为所欲为了,解决方案也比较简单,加unix 时间发过去就行了,重放就会失效。
当然另一个办法更加直接,就是直接反汇编硬破,其实我都已经破开了来着,毕竟java太弱了。
c当然不错,是个好的办法,加上汇编更难破解,不过我建议你最好bundle一份常用的加密/digest库的源码,以及网络通讯代码,并且一起混淆掉,否则只要定位到网络发送的函数调用,IDA下断点就找到你在干什么了,之后就又是被爆破。
大概这就是昨晚吹得牛了。
进入正题,首先告诉你的是,客户端永远不可能完全防止破解,只能增加成本。
昨晚和4z大佬讨论过这个问题来着。
我用fernflower反编译过anticheat 3.4,大概了解了其原理。
其实就是遍历所有loaded mod 包括了fml,forge,mcp,各种mods,然后从class的protecteddomain找出jar位置,再计算md5/sha1/sha256 digest, 当然有些是坑,比如mcp就没有文件位置。
anticheat至少我看到过的那个版本还是有个问题的,可以被重放。
anticheat用了simplenetworkchannel,底层是netty,那么只要去重新打包netty,把处理函数改一改,改成这样的逻辑,当channel名符合预设时,监听你的请求,录下来,然后再把你截胡,重放给服务器老的消息,这样你不管干什么了,上层的ac是察觉不到的,这样就可以为所欲为了,解决方案也比较简单,加unix 时间发过去就行了,重放就会失效。
当然另一个办法更加直接,就是直接反汇编硬破,其实我都已经破开了来着,毕竟java太弱了。
c当然不错,是个好的办法,加上汇编更难破解,不过我建议你最好bundle一份常用的加密/digest库的源码,以及网络通讯代码,并且一起混淆掉,否则只要定位到网络发送的函数调用,IDA下断点就找到你在干什么了,之后就又是被爆破。
大概这就是昨晚吹得牛了。
dogeop 发表于 2018-3-22 23:32
噫?我账号解了?emm,再也不去茶馆了。
进入正题,首先告诉你的是,客户端永远不可能完全防止破解,只能增 ...
正如你所说,重点不在于校验,而在于反破解,破解者一般专注于如何允许载入作弊mod,其实不用在意网络部分被破解,那难度太大了。
Stevenlaw 发表于 2018-3-22 18:03
LZ我愿意找你定制反作弊,私聊我留个联系方式开个价吧。
这个就算了,我水平不够的
lona 发表于 2018-3-23 00:32
正如你所说,重点不在于校验,而在于反破解,破解者一般专注于如何允许载入作弊mod,其实不用在意网络部 ...
其实破网络成本相对最低....
只要你没校验,那么就是0成本重放
至于反作弊,AI反作弊将会是主流(AI技术仍在发展)。可惜现在中考,要不然我现在研究着神经网络……
爱国民主 发表于 2018-3-24 10:24
至于反作弊,AI反作弊将会是主流(AI技术仍在发展)。可惜现在中考,要不然我现在研究着神经网络…… ...
大哥,别做梦一步登天了,先去学数据结构,网络,计算机组成原理吧。
NN这种东西哪里是一个中学生知识能轻易理解的,大批的本科和研究生都对这个一脸懵逼,
深度学习是个黑盒子,如同炼丹,哪有那么好学的,既要啃论文又要实践,搞完了还不一定知道自己为什么对或者为什么错呢。
dogeop 发表于 2018-3-24 12:51
大哥,别做梦一步登天了,先去学数据结构,网络,计算机组成原理吧。
NN这种东西哪里是一个中学生知识能 ...
咳咳(特别讨厌这种看不起态度知道吗)
学什么我当然知道,我热爱AI这东西
世界无奇不有,没有做不到的,只有想不到的
爱国民主 发表于 2018-3-24 13:27
咳咳(特别讨厌这种看不起态度知道吗)
学什么我当然知道,我热爱AI这东西
世界无奇不有,没有做不到的, ...
学历问题是个硬伤,这玩意不是你import几个python库都能懂的。
真的感兴趣就别现在瞎折腾了,好好学习考个好大学有高的平台,碰到牛的人,才有出路。
世界上没有那么多天才,更不存在什么人有多大胆地有多大产。
瞎**搞成不了事情。
爱国民主 发表于 2018-3-24 13:27
咳咳(特别讨厌这种看不起态度知道吗)
学什么我当然知道,我热爱AI这东西
世界无奇不有,没有做不到的, ...
对你来说,还是打好你的学业基础重要,别胡思乱想搞些有的没的,到时候没考好掉个二本三本,那时候你连资源都没有,谈何AI。
本帖最后由 爱国民主 于 2018-3-24 21:20 编辑
---
---
爱国民主 发表于 2018-3-24 15:11
就一定要考到大学,碰到牛人就有出路吗?
你不冒险,不去拼搏怎么知道会怎样呢?
不存在的,没有基础的人在那里瞎搞就是胡思乱想。
NN需要的数学知识哪是一个一般的初中生能理解的哦,比尔盖茨退学那也是考上了名校,能力爆表。
AI这东西不是想上就能上,要有扎实的数学功底,过关的英文阅读能力(读各种论文),以及最后需要一些灵性。
我就问你,随便给你一篇IEEE Xplore的AI/深度学习/计算机视觉/数据挖掘论文你能不能从头到尾明白他在说什么么?我觉得你不能,因为你这个阶段的数学水平和英语水平都达不到,当然你要是能证明你马上就能考中科大少年班,那我之前的话就当没说吧。我也只是勉强能够着边,还不一定入得门。
不要总把特例当做普遍。
打好学业基础和计算机基础才是正道,一步登天者通常都会摔下来。
你一个初中生直接就一句AI才是反作弊正道不是大言不惭么,一没数据二没算法,拿什么ai。
这个世界上最不能信的就是鸡汤。
另外那个10岁的黑客干的事情我大概是了解的,本质上不困难就是观察业务逻辑,构建请求刷单,不算什么特别有技术含量的事情,主要考察的是对业务逻辑的观察了解,当然10岁做得到还是难能可贵的。
爱国民主 发表于 2018-3-24 15:11
那你说我蠢咯?
就一定要考到大学,碰到牛人就有出路吗?
你这话就有点强词夺理了。
不一定所有的领先,最后都会领先。
到大学就被淘汰?所有搞AI的都是大学前开始?
学业与自己的爱好互不影响,这是确实可以做到的。我很同意。
为自己喜欢的东西努力,这点很好的。但也希望分清主次。
天才都只是少数。既然没有那样的天赋,何必一口气吃成胖子?
新事物的发展远不止你想的那样。大学被淘汰,没这回事的。
(毕竟,不创业的话,找工作看的还是学历啊)
在目前学习还是最重要的,一个好的导师,确实能够事半功倍。
事先做好准备确实没错的,但深入研究,留到大学吧。
冒险,这种事情,你能看到的永远只是成功者。谁会为一个失败者宣传呢?(部分例外)
秋天007 发表于 2018-3-24 20:23
你这话就有点强词夺理了。
不一定所有的领先,最后都会领先。
到大学就被淘汰?所有搞AI的都是大学前开始 ...
也许吧
我忘了分析未来结果,只看到现在结果:
就是说,比尔盖茨吧
1.要是他不放弃学业,微软会怎样
2.微软确实强占了系统市场,但未来也许不会保持很久,就如你所说“最后都会领先”
我被发卡了0.0,你也小心了(我忘了版聊规定)
说下帖子吧,还是期待帖子完善,也不希望熊孩纸利用(阅读权限高了吧?防熊)
可是我是学习javaweb的,想搞也有点无力
看来楼主对深度学习了解的不是很透彻。拿广为人知的backpropogation算法来说,它训练ANN无非就是链式求导,梯度下降。高二就学过了。
爱国民主 发表于 2018-3-24 21:26
也许吧
我忘了分析未来结果,只看到现在结果:
就是说,比尔盖茨吧
https://www.spigotmc.org/threads/machine-learning-killaura-detection-in-minecraft.301609/
这是我写的小paper,关于人工智能检测killaura的,你绝对看得懂。
楼主的陈述缺乏论据支持,不要信
dogeop 发表于 2018-3-24 12:51
大哥,别做梦一步登天了,先去学数据结构,网络,计算机组成原理吧。
NN这种东西哪里是一个中学生知识能 ...
楼主你好,你是怎么得出这个结论的,很多本科生和研究生都搞不懂,于是一个中学生就搞不懂
我表示我CPP和C的标准库都没有弄明白.......
AI反作弊想法很好,但是成本太高,最后的结果就是无法实施。
罗拉最可爱了,mua
一个月都过去了,怎么还没更好一节啊,一节都好啊
楼主可以尽早编辑深度学习的部分吗,就是来看这个教程的…
z1252583957 发表于 2018-4-17 10:49
AI反作弊想法很好,但是成本太高,最后的结果就是无法实施。
请给出你的论据。据我所知,现在有一部分知名大型服务器都用上了AI反作弊,而且效果颇佳。其次,这个“成本”如何定义?
4one_R 发表于 2018-4-20 18:19
请给出你的论据。据我所知,现在有一部分知名大型服务器都用上了AI反作弊,而且效果颇佳。其次,这个“成 ...
当然是开发成本啊,这并不是个人就能完成的事,你要找一些会AI的人组成个小团队来开发这个插件,要花多少钱?也许你可以开源,让更多人义务的来完成这个插件,但是你的安全监测系统都是开源的那么这样的安全监测系统还算安全吗?作弊大部分情况都是修改了客户端,所以我们要保证客户端文件的完整一致性,但是,检查本地文件完整一致性又有很大一本分的逻辑要在客户端上执行,在客户端执行的这一段逻辑代码就会很不安全,于是我们要经常迭代这段代码,才能做到相对安全。参考原来T.X的C.F和D.N.F,它就是这样做的,只要他的版本更新速度比外挂的快,更新速度大于破解速度,那么游戏就是安全的。继续拿C.F和D.N.F说事,C.F与D.N.F后期的版本迭代的速度明显慢了下来,它的后台绝对有了一套健全的行为监测机制,此时的外挂也慢慢变少了,几乎很少会有,即使有挂,随便玩一下就会被检测到。
结论:AI监测的确强有力,但其针对性太强,我的世界玩法太多,单说一个PVP,就需要监测很多很多的行为,系统要达到精准健全,需要很多人力物力,开发成本高,耗时耗力
硬编码检查方案监测逻辑简单,效果好,但不安全,需要进行不断的版本迭代才能保证安全,前期开发成本也低于AI,效果也是立竿见影
硬编码+AI = 相对安全,单靠其中一个是不行的
现在我的世界环境是是,健全的硬编码方案都没有,还谈什么AI,雨花亭够大了吧,按理说反作弊应该很厉害,但是游戏里经常出现一个小队,里面就有两个是挂,十分明显系统居然还检测不出来
本帖最后由 4one_R 于 2018-4-21 22:00 编辑
你的大部分逻辑都不成立。
z1252583957 发表于 2018-4-21 15:42
当然是开发成本啊,这并不是个人就能完成的事,你要找一些会AI的人组成个小团队来开发这个插件,要花多少 ...
你的大部分逻辑都不成立。
- 你前后的立场不一致:前面你说AI无法实施,而现在你又承认了AI反作弊的可行性:“硬编码+AI = 相对安全,单靠其中一个是不行的”。“AI反作弊无法实施”和“纯AI反作弊无法实施”是截然不同的概念。可能是你前文没说全,此处按下不表。
- 你没有给出个人无法完成的事实证据。相反,在SpigotMC上有许多个人维护的机器学习反作弊项目,其中有一部分已经取得了很好的成果。
- 在本地进行检测是个很糟糕的主意。
- 更新速度大于破解速度,那么游戏就是安全的——这句话显然有漏洞。这句话成立的前提是开发者已经知道了现存的所有的作弊手段,而这显然是不可能的。而且,这就是Private ghost client存在的原因。
- 其次,在本地进行硬编码检测也有其不妥之处:如果某些手段能在更底层的层面绕过检测(比如建立虚拟网卡并修改数据……),本地的逻辑就必须比其更“底层”。是什么能保证本地的逻辑能不越来越“底层”,而不越权——从一个简单的建立在虚拟机里的游戏变成需要与系统底层的东西交互的庞大工程——破坏玩家的系统呢?
- 再者,反复迭代代码花费的成本从长远角度来看并不见得比机器学习少。反复迭代代码就像“猫抓老鼠”:比谁快而已。海量的维护量。你必须时刻注意整个community的动向。这个community多大?你在哪里可以找到?这些都是未知的。
- 而且,你同样需要在更加底层的操作系统层面进行关于反作弊的考虑。这样就需要引进新的人。如果说之前需要一拨会AI的人,现在就需要一拨了解逆向工程并且在更加底层的层面上了解操作系统的人——不外乎就是换一拨人而已。这是费时费力的硬编码不可取之处。
- AI反作弊的最大优点在于:你不用去为了防御新的作弊手段而编写新的代码,甚至系统可以“自动地”完善自己。
- 而且,你可以甚至不用知道某个作弊手段是如何绕开你的本地检测的。让系统自动完成编码,省时省力。
- 而且,它的效率很可观:你可以在服务端收集大量数据然后做一些统计学分析(如聚类),以此抓住全部具有作弊特征的玩家。
- 而且,你可以完全安静无声地在服务端完成所有的检测。用户无法察觉,这样可以在一定程度上扰乱作弊手段的“防哪绕哪”现象。
- 而且,如果不公开系统的设计的话,显然在很可观的一段时间内AI反作弊能保持一定的稳定性。
- 最后,AI和机器学习从来不是对立或者从属的关系,它是解决一个问题的两种截然不同的方式。没有健全的硬编码方案,AI反作弊也一样能实行。
- 最后,我希望你给的例子不是来自国内的那些无名的盗版服务器。数据需要有代表性。
已收藏坐等更新~~
dundun123 发表于 2018-4-19 18:22
一个月都过去了,怎么还没更好一节啊,一节都好啊
抱歉呐,因为着手设计新的反作弊,这边教程没时间动,我会尽快更新的
lona 发表于 2018-4-23 17:09
抱歉呐,因为着手设计新的反作弊,这边教程没时间动,我会尽快更新的
楼主是在设计客户端的反作弊吗?
4one_R 发表于 2018-4-27 12:45
楼主是在设计客户端的反作弊吗?
是的
那楼主加油
这帖子里的某些人真令人无语,在对要讨论的领域一无所知的情况下漫天胡扯
这帖子里的某些人真令人无语,在对要讨论的领域一无所知的情况下漫天胡扯
酷车手BB弹 发表于 2018-3-22 18:15
看到了吧,这就是大佬 (Ymer不支持XP。不支持sponge。差评= =)
可是。。xp已经不安全了,另外人的精力有限
爱国民主 发表于 2018-3-24 10:24
至于反作弊,AI反作弊将会是主流(AI技术仍在发展)。可惜现在中考,要不然我现在研究着神经网络…… ...
我一朋友已经在做了 我觉得目前他布星
本帖最后由 silveryingchen 于 2018-5-17 12:38 编辑
emmmm大佬。。话是这么说,但是无奈mod服也基本只能依靠客户端反作弊了,如果是常规检测各种问题,另外类似AAC这样的反作弊检测还是给绕过了,同样需要增加成本。。 。。如果没有搞错客户端在于进入时需要时间检验,而常规的反作弊插件是时刻检验的,另外。。似乎也无法防止类似窃取地图这类mod 嗯,其实我对这些并不是很懂,但感觉客户端反作弊有存在的意义。。。轻喷 若有错误,望指正
dogeop 发表于 2018-3-22 23:32
噫?我账号解了?emm,再也不去茶馆了。
进入正题,首先告诉你的是,客户端永远不可能完全防止破解,只能增 ...
emmmm大佬。。话是这么说,但是无奈mod服也基本只能依靠客户端反作弊了,如果是常规检测各种问题,另外类似AAC这样的反作弊检测还是给绕过了,同样需要增加成本。。 。。如果没有搞错客户端在于进入时需要时间检验,而常规的反作弊插件是时刻检验的,另外。。似乎也无法防止类似窃取地图这类mod 嗯,其实我对这些并不是很懂,但感觉客户端反作弊有存在的意义。。。轻喷 若有错误,望指正
爱国民主 发表于 2018-3-24 13:27
咳咳(特别讨厌这种看不起态度知道吗)
学什么我当然知道,我热爱AI这东西
世界无奇不有,没有做不到的, ...
年轻人,看好你,但是语言只是工具,算法才是灵魂,理科学业基础特别是数学类的很重要,这个真不是开玩笑,加油吧
可以的 我想学
4one_R 发表于 2018-4-21 21:53
你的大部分逻辑都不成立。你前后的立场不一致:前面你说AI无法实施,而现在你又承认了AI反作弊的可行 ...
你估计是有什么误解吧,你以为我是在 嘲 讽 你的想法?还是以为我在 嘲 讽 你的项目?都没有!!!我可没说过用AI不可行,我的意思是说,用AI的难度不小,AI反 作弊也不是个小工程。因为种种原因,很有可能就导致了工程的烂尾,无法继续下去,比如MC国内的 凉凉走势,人力,精力,财力...等原因。见过很多优秀的插件,mod等等,作者最后弃坑的也不在少数。当然 ,我这不是在诅咒你的项目,我希望你能走到最后,MC是需要一个健全的反作弊系统的,祝你成功!
同样的,我没说硬编码方案无敌就不需要AI技术了,我知道客户端的硬编码是有很多局限性的。就比如当玩家用加速的软件加速客户端,即使玩家没有改动过客户端,但是他依然在服务器中作弊,此时要是有AI的监测插件就能很好的解决。不过我还是要坚持我的想法:AI固然强大,但绝对有其局限性,硬编码虽然LOW,但也能解决很多问题,两者结合才能有比较好的效果。至少目前是这样的,以后要是你的插件很完善了,完全不需要其他乱七八糟的东西了,那就当我没说
经常叫 挂 雨庭的 花 雨 庭,我居然还记反了名字
辛苦了 泷泽lona
3222577979 发表于 2018-6-24 13:48
辛苦了 泷泽lona
报上你的名来,我赠与你无上禁言荣耀!
前排支持 学习更多先进技术
z1252583957 发表于 2018-6-20 13:37
你估计是有什么误解吧,你以为我是在 嘲 讽 你的想法?还是以为我在 嘲 讽 你的项目?都没有!!!我可没 ...
AI反作弊就个光说不做的吹比笑话
让客户端与服务器有更多的交互才是反作弊的正道(参考王者荣耀orLOL)
而且AI反作弊即使出来了,那计算量是一般服务器能承受得了的?
所以,实践才能出真知