
Venom は、盗まれたブラウザソケットを使用して回避的通信を実行することを目的としたライブラリです
Venom は、通信のための代替手段を提供することを目的とした C++ ライブラリです。プロセスに辿り着ける可能性のあるソケットを作成する代わりに、新しい「隠れた」(ウィンドウが表示されない) 分離された Edge プロセスを作成し(Edge は Windows 10 以降に標準インストールされており、疑わしく思われないブラウザであるため選択されました)、そのソケットの1つを奪ってネットワーク操作を実行します。
分離されたブラウザプロセスを作成する利点は、ユーザーによって誤って閉じられる危険がないことと、ソケットは存在するもののどのサイトとも通信していないため、衝突の可能性を回避できることです。

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();
ソケットを使用してデータを送受信する方法を示す example を参照できます。
これが機能する根本的な理由、正確には、(場合によっては接続された) ソケットを使った送受信が問題なく行える理由は、関数のドキュメントにあります。
その詳細を説明する前に、既に開かれているプロセスではなく新しい Edge プロセスを作成することを選択した主な理由は2つあります:
ブラウザのソケットが既に使用されているかどうかを知ることはできず、データの受信を試みた場合に衝突を引き起こす可能性があります。
作成したプロセスはユーザーによっていつでも誤って閉じられる可能性があり、通信が切断されることを意味します。
新しいプロセスを作成する理由を理解したところで、既存のソケット(接続されている可能性がある)を使用してターゲットと通信できる理由(接続せずに)を説明できます。
さらに、次のようにも書かれていることを読めます: "... Even if the connectionless socket has been previously connected to a specific address, the to parameter overrides the destination address ..." つまり、sendto でターゲットを上書きできるということです。