Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 防止数据包注入_C#_C++_Code Injection_Packet - Fatal编程技术网

C# 防止数据包注入

C# 防止数据包注入,c#,c++,code-injection,packet,C#,C++,Code Injection,Packet,我想开发一个用C/C++/C编写的应用程序,它可以防止特定应用程序的数据包注入。它有点像反作弊软件 在作弊者方面,场景是这样的:在游戏中打开应用程序,然后打开欺骗应用程序,欺骗游戏发送的数据包,向它们注入虚构的数据并将这些数据包传输到服务器 我的目标是设计一个应用程序,可以防止特定游戏的数据包注入,但我不知道从哪里开始 有人能给出一个起点吗? 谢谢 让游戏使用SSL例如HTTPS。您的游戏客户端和服务器将在它们之间建立一个加密的通信通道。我不明白。为什么作弊者想要运行你的应用程序?托马斯,我想开

我想开发一个用C/C++/C编写的应用程序,它可以防止特定应用程序的数据包注入。它有点像反作弊软件

在作弊者方面,场景是这样的:在游戏中打开应用程序,然后打开欺骗应用程序,欺骗游戏发送的数据包,向它们注入虚构的数据并将这些数据包传输到服务器

我的目标是设计一个应用程序,可以防止特定游戏的数据包注入,但我不知道从哪里开始

有人能给出一个起点吗?
谢谢

让游戏使用SSL例如HTTPS。您的游戏客户端和服务器将在它们之间建立一个加密的通信通道。

我不明白。为什么作弊者想要运行你的应用程序?托马斯,我想开发一个启动器。如果不从我的应用程序启动游戏,用户将无法在服务器上玩。另外,正如我所说,我想编写一些代码来阻止数据包注入。我假设您打算在这里使用windows。。。做你想做的事情几乎是不可能的,因为有太多不同的方法来实现它。你至少可以用3种不同的方式注入数据包,这是我脑子里想得到的。分层服务提供程序、Winsock垫片DLL和TDI层。然后进入pcap类型的工作…您可以在客户端对敏感数据进行签名/校验和。但最终如果用户控制了游戏二进制文件和客户端机器,你就无法阻止他们发送任何他们喜欢的东西。您可能需要将游戏引擎/控件的一部分移动到服务器,并将客户端视为不受信任的客户端。SSL在处理器资源方面非常昂贵,并且启动和关闭时间较长。大多数游戏都使用UDP,因为TCP的开销太大了……我不确定。我想为我的一个朋友开发这个应用程序。如果有帮助的话,这个游戏就是魔兽世界。我以前从未玩过这个游戏,我对通信协议一无所知。@IonutUngureanu:你必须关闭Warden暴雪反作弊工具才能产生任何效果,虽然可以做到这一点,但这并不是小事。阻止数据包注入在Windows上是不现实的。但是我至少可以检测到数据包是否被注入了吗?在这种情况下,我可以把玩家从服务器上踢出去…@IonutUngureanu:甚至不到100%。同样地,有太多的途径可以注入数据包,其中一些非常容易做到,以至于你会花费所有的时间去弄清楚人们是如何设法通过你的防御的。更好的方法是验证数据包中的数据。例如,移动数据包。您知道该字符位于x&y,并且会发送一个移动数据包,将其移动到x+1000&y。既然他是步行的,那就不可能了。但是,如果他在船上或飞行的坐骑上,这是可能的。