我在visual studio和windows10 x64下使用c++创建了一个简单的嗅探器,但当我试图运行它时。我得到了Failed to create raw socket.,这是因为管理员权限,但我是在互联网上。我可以使用像CAP_NET_ADMIN这样的东西,但它是基于linux的。有没有办法在windows如wireshark下做非root用户的工作?
//Initialise Winsock
printf("\nInitialising Winsock...");
if (WSAStartup(MAKEWORD(2,2), &wsa) != 0)
{
printf("WSAStartup() failed.\n");
return 1;
}
printf("Initialised");
//Create a RAW Socket
printf("\nCreating RAW Socket...");
sniffer = socket(AF_INET, SOCK_RAW, IPPROTO_IP);
if (sniffer == INVALID_SOCKET)
{
printf("Failed to create raw socket.\n");
return 1;
}
printf("Created.");发布于 2019-07-08 14:40:24
原始套接字提供了操纵底层传输的功能,因此它们可能被用于构成安全威胁的恶意目的。因此,只有Administrators组的成员才能在Windows2000和更高版本上创建SOCK_RAW类型的套接字。
发布于 2021-02-12 03:37:07
如果任何人在Wine上得到了这个,你需要允许wineserver使用Ping.SendPrivileged:
sudo setcap CAP_NET_RAW=ep /usr/bin/wine
sudo setcap CAP_NET_RAW=ep /usr/bin/wineserver
sudo setcap CAP_NET_RAW=ep YOUREXE.exehttps://stackoverflow.com/questions/56919236
复制相似问题