c++ - 用MS绕弯路防止winsock注入(inject)

标签 c++ dll detours

<分区>

我在某处读到一段代码, promise 它可以保护应用程序 Winsock 功能免受数据包编辑器的影响。

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

比如如果他们将数据包编辑器连接到我的应用程序,他们将不会在数据包日志记录中看到任何内容?

或者对这类工具隐藏我的应用程序进程是更好的方法吗?

谢谢。欢迎讨论。

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

最佳答案

如果您要将此类代码添加到您的游戏中,我会直接 NOP ;)

克服它。
客户端不安全,永远不可信。

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

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

一个更好的主意是使用 isdebuggerpresent 来关闭程序(如果是的话)。 但是然后你需要加密可执行文件,因为否则我只是用 IDA 反汇编它,并且补丁是调试器存在于 NOP,或者 0xe9 它在运行时通过 createremotethread 返回 false,顺便说一句,文件校验和检查无法检测到.

但是,如果我劫持 isdebuggerpresent WinAPI 函数并将其删除,您仍然会受到攻击。这也可以通过 MS 弯路来实现 ;)

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

相关文章:

c++ - 持续集成服务能否在本地构建 Linux 包?

c# - 如何将字符串转换为变量,vb6/c#/c++?

c++ - 绕行 GetComputerNameW

c++ - 为什么使用函数指针调用函数可以绕过钩子(Hook)?

c++ - Linux Ubuntu下绕行功能

c++ - 我的 std::hash for std::tuples...有什么改进吗?

c++ - 在其他计算机上导入 RSA key 时出现问题

c++ - 在 dll 中导出函数。 C 和 C++

c# - 是否可以将 LPWSTR 从 C++ DLL 返回到 C# 应用程序

windows - 如何将regcap用于64位DLL文件