Minecraft(我的世界)中文论坛

 找回密码
 注册(register)

!header_login!

只需一步,立刻登录

查看: 6245|回复: 51

[其它开发教程] [C++&Java]MC反作弊开发日记[PCD]

[复制链接]
萝娜娜 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
3259
钻石
性别
保密
注册时间
2017-12-18
查看详细资料
发表于 2018-3-22 15:16:44 | 显示全部楼层 |阅读模式

您尚未登录,立即登录享受更好的浏览体验!

您需要 登录 才可以下载或查看,没有帐号?注册(register)

x
本帖最后由 lona 于 2018-7-31 02:17 编辑

【MC反作弊开发日记】

零.作者的话
    1.我只是一个普通的开发者,希望与大家交流技术所以把反作弊教程发布在这里,相信有人阅读并了解之后能够做出更优秀的作品。
    2.剑可以拿来保护人也可以拿来伤害人,利用这篇教程去开发作弊软件是及其可耻的行为。
    3.这篇教程涉及的方面很多,而作者本人却只是一名普通学生,所以介绍得比较简陋也有可能漏洞百出,所以请发现问题的读者能及时告诉我。
    4.如果遇到技术问题,欢迎在QQ上进行交流(bbs上交流确实比较麻烦)。
一.简介
    1.你能从这个教程学到什么
        (1).C++ java及少许汇编(AT&T)知识
        (2).常用破解及反破解手段
        (3).少许windowsAPI
        (4).网络方面的知识
    2.这个教程适合哪些读者
        (1).希望了解当前反作弊技术的
        (2).想制作反作弊的
    3.这个教程需要的前置知识(注:非必须即表示在阅读前不必掌握,但是在阅读时会掌握的技能)
        (1).至少学过一门编程语言并且能够简单的print(必须)
        (2).C/C++(非必须)
        (3).java(非必须)
        (4).AT&T汇编(非必须)
        (5).windowsAPI(非必须)
        (6).linux下C++程序开发基础(非必须)
        (7).加密与hash算法(非必须)
        (8).windows下hook,file-patch等技术(非必须)
        (9).逆向工程基础(非必须)
        (10).OD或者x96dbg的基本使用(非必须)
        (11).壳的编写与分析(非必须)
    3.阅读这个教程会花掉多少时间
        (1).还没写呢
二.目录
    第零章:配置环境及知识准备(完成)
    第一章:纯Java编写Mod校验(完成)
    第二章:防止协议被破解而对通信进行加密和混淆(部分完成)
    第三章:防止mod和插件被破解将核心功能写在C/C++里(编辑中)
    第四章:防止hook 远程注入 内存补丁 调试(编辑中)
    第四章:防止C/C++编写的库被反编译,对程序加花指令(未开始)
    第五章:防止C/C++编写的库被反编译,对程序加壳(未开始)
    第六章:防止被脱壳而自己编写壳(未开始)
    第七章:防止被反编译而用纯汇编编写核心代码(未开始)
    第八章:行为检测(额外章节-编辑中)
    第九章:深度学习在反作弊的应用(额外章节-未开始)
三.关于更新
    1.作者只是个破学生,精力有限,只能保证每个月至少更一节(没更就算了,嘻嘻)
    2.关于托更,最近在设计新的反作弊方案,抽不出空来
    3.这恐怕很难称得上是个教程
来自群组: PluginsCDTribe

评分

参与人数 11人气 +20 金粒 +181 收起 理由
gooding300 + 3 + 25 MCBBS有你更精彩~
布鲁鲁 + 2 + 30 MCBBS有你更精彩~
火魔帝君 + 2 快点更新0-0
猜猜谁是谁 + 2 + 20 三个月了。。还在编辑么
Mr.Seven590 + 2 + 40 楼主加油呐
@@Leo + 2 + 20 收藏收藏
602723113 + 2 MCBBS有你更精彩~
帅比小樊 + 2 + 10 神乎其技,不服不行!
森林蝙蝠 + 1 + 16 MCBBS有你更精彩~
惊鸿落人间. + 1 + 20 PCD有你更精彩~
海贼王# + 1 MCBBS有你更精彩~

查看全部评分

海贼王# 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
5698
钻石
性别
保密
注册时间
2016-2-20
查看详细资料
发表于 2018-3-22 15:56:58 | 显示全部楼层
大佬 前排支持
回复

使用道具 举报

@TGL 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
2757
钻石
性别
保密
注册时间
2016-4-30
查看详细资料
发表于 2018-3-22 16:47:21 | 显示全部楼层
支持楼主!
回复

使用道具 举报

Stevenlaw 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
7730
钻石
性别
保密
注册时间
2013-2-12
查看详细资料
发表于 2018-3-22 18:03:40 | 显示全部楼层
LZ我愿意找你定制反作弊,私聊我留个联系方式开个价吧。
回复

使用道具 举报

酷车手BB弹 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
36760
钻石
性别
保密
注册时间
2013-6-29
查看详细资料
发表于 2018-3-22 18:15:24 | 显示全部楼层
看到了吧,这就是大佬 (Ymer不支持XP。不支持sponge。差评= =)
回复

使用道具 举报

孟婆汤没了 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
4495
钻石
性别
保密
注册时间
2015-1-6
查看详细资料
发表于 2018-3-22 18:36:48 | 显示全部楼层
期待大佬的教程
回复

使用道具 举报

lzycc234 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
2005
钻石
性别
保密
注册时间
2013-2-23
查看详细资料
发表于 2018-3-22 18:57:43 | 显示全部楼层
看到cpp就进来了
回复

使用道具 举报

ttc_V 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
5057
钻石
性别
保密
注册时间
2015-4-25
查看详细资料
发表于 2018-3-22 18:58:02 | 显示全部楼层
有生之年作品系列
回复

使用道具 举报

粘兽 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
12060
钻石
性别
保密
注册时间
2017-2-28
查看详细资料
发表于 2018-3-22 19:53:08 | 显示全部楼层
一门都不会也要凑个热闹
回复

使用道具 举报

langyo_v3 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
6160
钻石
性别
保密
注册时间
2017-4-5
查看详细资料
发表于 2018-3-22 20:56:56 | 显示全部楼层
坐等第一章

(我现在就担心你这个教程会像我之前那个红石计算机的教程帖一样黄了)
(抓紧时间填内容啊,不然几天之后你再发分帖就没几个人看了)
回复

使用道具 举报

dogeop 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
1400
钻石
性别
保密
注册时间
2016-7-27
查看详细资料
发表于 2018-3-22 23:32:17 | 显示全部楼层
噫?我账号解了?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下断点就找到你在干什么了,之后就又是被爆破。

大概这就是昨晚吹得牛了。
回复

使用道具 举报

萝娜娜 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
3259
钻石
性别
保密
注册时间
2017-12-18
查看详细资料
 楼主| 发表于 2018-3-23 00:32:42 | 显示全部楼层
dogeop 发表于 2018-3-22 23:32
噫?我账号解了?emm,再也不去茶馆了。
进入正题,首先告诉你的是,客户端永远不可能完全防止破解,只能增 ...

正如你所说,重点不在于校验,而在于反破解,破解者一般专注于如何允许载入作弊mod,其实不用在意网络部分被破解,那难度太大了。
回复

使用道具 举报

萝娜娜 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
3259
钻石
性别
保密
注册时间
2017-12-18
查看详细资料
 楼主| 发表于 2018-3-23 00:33:25 | 显示全部楼层
Stevenlaw 发表于 2018-3-22 18:03
LZ我愿意找你定制反作弊,私聊我留个联系方式开个价吧。

这个就算了,我水平不够的
回复

使用道具 举报

dogeop 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
1400
钻石
性别
保密
注册时间
2016-7-27
查看详细资料
发表于 2018-3-23 20:54:15 | 显示全部楼层
lona 发表于 2018-3-23 00:32
正如你所说,重点不在于校验,而在于反破解,破解者一般专注于如何允许载入作弊mod,其实不用在意网络部 ...

其实破网络成本相对最低....
只要你没校验,那么就是0成本重放
回复

使用道具 举报

童鞋鞋 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
6450
钻石
性别
保密
注册时间
2017-3-11
查看详细资料
发表于 2018-3-24 10:24:07 来自手机 | 显示全部楼层
至于反作弊,AI反作弊将会是主流(AI技术仍在发展)。可惜现在中考,要不然我现在研究着神经网络……
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 京公网安备 11010502037624号 | 手机版

GMT+8, 2020-5-31 19:13 , Processed in 0.062609 second(s), Total 52, Slave 36 queries, Release: Build.2020.05.27.1637, Gzip On, MemCached On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标 本站与Mojang以及微软公司没有从属关系

© 2010-2020 我的世界中文论坛 版权所有 本站原创图文内容版权属于原创作者,未经许可不得转载

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