As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center作为指导。
                            
                        
                    
                
                                6年前关闭。
            
                    
我在某个地方读过一个代码,保证它可以保护应用程序Winsock的功能不受数据包编辑器的影响。

我运行游戏服务器,这对我来说确实是个好消息。但这真的有可能吗?
就像使用绕行添加DLL到我的游戏可执行文件中一样,可以保护我的winsock函数免遭劫持?

就像他们将数据包编辑器挂接到我的应用程序一样,他们不会在数据包记录中看到任何内容吗?

还是在这种工具中隐藏我的应用程序的过程是更好的方法?

谢谢。请讨论。

我找到的代码:http://pastebin.com/XtfSHxBL

最佳答案

如果您要将这样的代码添加到您的游戏中,我将不予处理;)

克服它。
客户端不是安全的,永远不能被信任。

此外,我可以在两者之间切换一个Linux路由器,并在那里捕获数据包。

如果您不希望捕获Winsock数据,则需要使用良好的非对称加密算法(例如PGP)对其进行加密,然后再将数据发送到Winsock。

一个更好的主意是使用isdebuggerpresent关闭程序(如果是这样)。
但是然后您需要加密可执行文件,因为否则我将用IDA对其进行反汇编,或者将isdebuggerpresent补丁修补为NOP,或者在运行时通过createremotethread返回0xe9并返回false,这在文件校验和检查中是无法检测到的。

但是,如果我劫持了isdebuggerpresent WinAPI函数并将其关闭,这种方法仍然很容易受到攻击。 MS绕道也可以实现这一点;)

关于c++ - 防止Winsock注入(inject)引起MS弯路,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16014458/

10-11 08:48