我的世界怎么开挂?

翟依琳翟依琳最佳答案最佳答案

这个嘛,要解决题主的问题首先就要搞清楚Minecraft的作弊原理,不然直接上代码可能不好理解。 那么什么是游戏的作弊原理呢?简而言之就是玩家向服务器发送一个命令(通常由一个输入框完成),服务器接收到这条命令后按照一定的逻辑处理并响应给这个玩家,从而使得这条命令成功执行。(这里的服务器指的是Minecraft的服务器端,指代不明可能会引起误解)

以创造模式为例,创造模式的作弊原理大致如下所示: 图中红框中为命令发送的过程,而蓝框则为命令的处理逻辑。当玩家输入/gamemode cs时,游戏会先判断是否有权限,有的话再判断玩家是否输入了/gamemode cs的完整格式(因为/gamemode后面可以跟多个模式),最后才按照cs的模式设置玩家的游戏模式(这里只考虑了创造模式,其他模式同理)

现在我们来思考如何利用这一原理进行作弊。显然需要做的就是在正常游戏流程之外加入一条或者多条未检测到的指令,当该指令被服务端收到并且正确处理后就会形成作弊。那么如何引入未检测的指令呢?最简单的办法就是把想要执行的指令打包成一个java类,然后让Minecraft加载这个类即可。

由于Java的类加载机制在启动游戏时就已经完成,因此在游戏运行过程中可以直接调用此类中的方法,实现作弊。 说了这么多,具体该怎么操作呢?以Forge为例子,Minecraft使用MCP(Minecraft服务器通信协议)进行通讯,可以在本地建立一台服务器并输入/gamemode test来测试作弊(测试服务器不需要加入Forge),然后在另一个窗口中使用JAR包管理工具查看对于应jar包的依赖,这样就可以轻松地找到mcp.jar的位置(通常是C:\Program Files\Java\jre7\lib\ext下)。 接下来就是最关键的一步,这一步是利用forge的编译漏洞实现的,如果forge版本过低则无法使用此漏洞。第一步是先打开forge的终端服务端(forgedtorunner.bat或forgedtoreader.bat),第二步是在任意输入框内输入/give @s minecraft:command_block,最后一步在刚才启动的游戏窗口中看到命令执行的成功提示。

当然上述过程没有提到如何获得到forge的终端服务端以及如何让游戏检测到已经执行了这个命令,这些都是通过在主程序中添加参数来实现。 以上就是利用Forge实现作弊的大致思路,实际上只要搞清了原理,各种mod或者其他内容都可以用类似的思路来进行修改。

我来回答
请发表正能量的言论,文明评论!