⌨️ Keylogger MSVC++ — kod źródłowy
C / C++


_converted
11:10 05-07-2020
1 ×
Zobacz profil
 Napisane ponad miesiąc temu (28 maja 2020 o godz. 14:39:53) przez _converted


⌨️ Aplikacje typu keylogger — informacje ogólne

Programy określane jako keylogger (z ang. rejestrator klawiszy) służą do monitorowania wciskanych klawiszy. Dzięki tego typu funkcjonalności możliwe jest przechwycenie rozmów tekstowych, adresów odwiedzanych stron www, haseł i ogólnie wszystkiego co jest pisane na klawiaturze. Jednak polskie prawo nie jest wobec tego obojętne (patrz: Kodeks karny / Przestępstwa przeciwko ochronie informacji (265-269B)). Z tego powodu informacji tutaj zawartych używasz na własną odpowiedzialność. Poniżej przedstawiony kod źródłowy nie jest narzędziem hakerskim, służy jedynie dla celów edukacyjnych nauki etycznego hackingu i został opublikowany korzystając z prawa do wolności słowa.

📜 Kod źródłowy aplikacji keylogger (Visual C++)

Aby lepiej zrozumieć zagrożenie oraz udowodnić, że keylogger może napisać nawet początkujący programista w dalszej części przedstawiono kod źródłowy keyloggera (prototyp naukowy). Program ten rejestruje wciskane klawisze za pomocą założenia niskopoziomowego podpięcia (ang. hook) na klawiaturę w systemie Windows. Do tego celu została użyta funkcja WinAPI o nazwie SetWindowsHookEx z odpowiednimi parametrami. W tym przypadku podano: wartość stałą WH_KEYBOARD_LL (#define WH_KEYBOARD_LL 13), wskaźnik do funkcji typu CALLBACK (z ang. wywołanie zwrotne), uchwyt do instancji modułu oraz NULL (w sumie 4 parametry). Po założeniu hooka na klawiaturę za pomocą wywołania zwrotnego aplikacja będzie informowana o każdym wciśnięciu klawisza.

Przykład keyloggera w C++ posiada m.in. następujące funkcjonalności:
  • Rejestruje wszystkie wciskane klawisze (oprócz klawiszy typu F1, F2, TAB, CTRL itp.)
  • Zamienia wciśnięcie kombinacji ALT+[znak] na odpowiednie polskie znaki diakrytyczne (np. ALT+A daje ą, czyli „a z ogonkiem”)
  • Raporty zapisuje co określoną ilość minut w katalogu \%APPDATA%\zxcvb (czas i katalog można zmienić)
  • Rejestruje czas oraz nazwę okna w którym wpisywany jest tekst (np. Word, Notatnik, Czat itp.)



Powyżej na rysunku przedstawiono raport testowy wygenerowany przez aplikację keylogger Visual C++. Jak widać zaprezentowany projekt jest keyloggerem lokalnym, ale nie wysyła raportów. Aplikację można rozbudować o wykonywanie zrzutów (zdjęć) ekranu co określony czas, dodać startowanie razem z systemem czy nawet ukrywanie się. Jednak to nie jest już w ramach tego artykułu, gdyż nie uczymy się tutaj tworzenia narzędzi do popełniania przestępstw.

Kod źródłowy:
📜 learn-ethical-hacking-msvcpp-keylogger-sample-pdf

Przestrzegam przed pobieraniem jakichkolwiek programów (w tym keyloggerów) z niepewnych źródeł. Udostępnianie programów z dołączonym złośliwym kodem jest bardzo starą, ale wciąż skuteczną metodą infekcji. Skąd wiesz czy znaleziony plik nie jest złośliwym oprogramowaniem? Uruchamiając program pobrany z jakiegoś warezu czy niepewnej strony narażasz swój system na infekcje. I to Ty możesz wtedy paść ofiarą złego hakera. Otrzymując kod źródłowy w formie tekstowej (ten artykuł) nie jesteś zagrożony tak jak w przypadku pobierania plików wykonywalnych *.exe.

Pozdrawiam, _converted.

© 2020 by haker.com.pl. Wszelkie prawa zastrzeżone.

Wszystkie treści umieszczone na tej witrynie są chronione prawem autorskim. Surowo zabronione jest kopiowanie i rozpowszechnianie zawartości tej witryny bez zgody autora. Wszelkie opublikowane tutaj treści (w tym kody źródłowe i inne) służą wyłącznie celom informacyjnym oraz edukacyjnym. Właściciele tej witryny nie ponoszą odpowiedzialności za ewentualne niezgodne z prawem wykorzystanie zasobów dostępnych w witrynie. Użytkownik tej witryny oświadcza, że z zamieszczonych tutaj danych korzysta na własną odpowiedzialność. Wszelkie znaki towarowe i nazwy zastrzeżone zostały użyte jedynie w celach informacyjnych i należą wyłącznie do ich prawnych właścicieli. Korzystając z zasobów witryny haker.com.pl oświadczasz, że akceptujesz powyższe warunki oraz politykę prywatności.