
Venom is a library that meant to perform evasive communication using stolen browser socket
Venom 是一个 C++ 库,旨在提供一种替代的通信方式。它不是创建一个可被追溯到进程的 socket,而是创建一个新的“隐藏”(不显示窗口)的分离 Edge 进程(之所以选择 Edge,是因为它是每个 Windows 10+ 系统上都安装的浏览器,不会引起怀疑),并窃取该进程的一个 socket 来执行网络操作。
创建分离的浏览器进程的好处是,不存在被用户意外关闭的危险,而且 socket 虽然存在但未与任何站点通信,因此可以避免可能的冲突。

Venom 是一个单一的 C++ 头文件,因此你只需将其包含到项目中,即可按如下方式使用:
Venom venom = Venom(L"127.0.0.1", 3110);
if (!venom.VenomObtainSocket()) {
std::cerr << "[ - ] Failed to get socket." << std::endl;
venom.~Venom();
return -1;
}
// Do your stuff here.
...
venom.~Venom();
你可以查看示例,其中演示了如何使用该 socket 发送或接收数据。
它之所以有效,或者更准确地说,为什么使用(可能已连接的)socket 发送和接收没有任何问题,核心原因在于这些函数的文档中。
在进一步解释之前,先说明我选择创建新的 Edge 进程而不是使用已打开进程的两个主要原因:
你无法知道浏览器 socket 是否已被占用,如果尝试接收数据,可能会发生冲突。
你创建的进程随时可能被用户误关闭,这意味着通信会被切断。
现在你已理解创建新进程背后的原因,我可以解释为什么可以使用一个已有的(可能已连接的)socket 与目标通信(而无需将其连接到目标)。
此外,你还可以看到他们还写道:“……即使无连接 socket 先前已连接到特定地址,to 参数也会覆盖目标地址……”,这意味着我们可以通过 sendto 覆盖目标。