
Venom is a library that meant to perform evasive communication using stolen browser socket
Venom은 통신을 위한 대체 방법을 제공하기 위해 만들어진 C++ 라이브러리입니다. 프로세스로 추적될 수 있는 소켓을 생성하는 대신, 새롭고 "숨겨진"(창이 표시되지 않는) 분리된 Edge 프로세스를 생성하고(Edge는 모든 Windows 10+에 설치되어 있으며 의심을 일으키지 않는 브라우저이기 때문에 선택되었습니다) 해당 소켓 중 하나를 가로채 네트워크 작업을 수행합니다.
분리된 브라우저 프로세스를 생성할 때의 이점은 사용자가 실수로 닫을 위험이 없으며, 소켓이 존재하지만 어떤 사이트와도 통신하지 않으므로 잠재적인 충돌을 피할 수 있다는 것입니다.

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();
데이터를 보내거나 받기 위해 소켓을 사용하는 방법을 보여주는 예제를 확인할 수 있습니다.
이것이 작동하는 핵심 이유, 정확히 말하면 (연결되어 있을 수도 있는) 소켓으로 아무 문제 없이 송수신할 수 있는 이유는 함수 문서에 설명되어 있습니다.
그것에 대해 더 설명하기 전에, 이미 열려 있는 프로세스를 사용하는 대신 새 Edge 프로세스를 생성하기로 선택한 주요 이유는 두 가지입니다:
브라우저 소켓이 이미 사용 중인지 알 수 없으며, 데이터 수신을 시도할 때 충돌이 발생할 수 있습니다.
사용자가 만든 프로세스는 언제든지 사용자가 실수로 닫을 수 있으며, 이는 통신이 중단됨을 의미합니다.
새 프로세스를 생성하는 이유를 이해했으니, 대상과 통신하기 위해(대상에 연결하지 않고) 이미 존재하는 (연결되어 있을 수도 있는) 소켓을 사용할 수 있는 이유를 설명할 수 있습니다.
또한 그들이 다음과 같이 썼다는 것도 읽을 수 있습니다: "... 비연결형 소켓이 이전에 특정 주소에 연결된 적이 있더라도 to 매개변수가 대상 주소를 재정의합니다 ..." 즉, sendto로 대상을 재정의할 수 있습니다.