Mbetull/Keylogger
GitHub: Mbetull/Keylogger
这是一个Python编写的教育用键盘记录器,用于记录键盘输入并可选通过Telegram发送警报。
Stars: 0 | Forks: 0
# 键盘记录器
一个用Python编写的小型键盘记录器,可以捕获记录键盘输入,并可选通过Telegram发送通知。日志文件保存在带时间戳的`logs/`目录下,还能将检测到的快捷键事件发送至Telegram机器人。
## 功能
- 使用`pynput`捕获键盘输入
- 检测桌面快捷键,例如:
- `Ctrl+C`, `Ctrl+V`, `Ctrl+X`, `Ctrl+A`, `Ctrl+S`, `Ctrl+T`, `Ctrl+W`, `Ctrl+U`
- `Ctrl+Shift+R`, `Ctrl+Shift+T`, `Ctrl+Shift+N`, `Ctrl+Shift+I`, `Ctrl+Shift+P`, `Ctrl+Shift+S`
- `Alt+Tab`, `Alt+F4`, `Ctrl+Shift+Esc`, `Ctrl+Alt+Del`, `Win+R`, `Win+D`, `Win+E`, `Win+L`
- 在输出中明确记录`Enter`和`Backspace`按键事件
- 将捕获的按键保存至`logs/`目录下的日志文件
- 将快捷键通知发送至Telegram机器人
- 启动时提示选择输出目标
- 支持命令行标志以跳过提示选择
- 使用`.env`文件存储Telegram凭证,也可在运行时询问
- 通过`Pause`、`ScrollLock`或`Ctrl+Alt+Shift+Q`退出程序
## 前置条件
- Python 3.8+
- `pynput` 包
- 可选:若需`.env`支持Telegram凭证,请安装`python-dotenv`
## 设置
1. 克隆仓库:
```
git clone https://github.com/Mbetull/Keylogger.git
cd Keylogger
```
2. 创建并激活虚拟环境:
```
python -m venv .venv
.\.venv\Scripts\Activate.ps1
```
3. 安装依赖:
```
pip install pynput
pip install python-dotenv
```
4. 若需本地存储默认Telegram token/聊天ID,请将`.env.example`复制为`.env`:
```
copy .env.example .env
```
然后编辑`.env`文件填入您的机器人凭证。
## 配置
应用优先从环境变量读取Telegram凭证,若已安装`python-dotenv`即可使用`.env`文件。
在`.env`中配置以下值:
```
TELEGRAM_BOT_TOKEN=your_bot_token_here
TELEGRAM_CHAT_ID=your_chat_id_here
```
若凭证缺失或无效且选择了Telegram日志功能,应用将在运行时要求输入。
## 运行
在项目根目录执行:
```
python .\app.py
```
若不带参数运行,应用将提示:
```
Save captured keys to [t]elegram, [f]ile, or [b]oth?
```
选择:
- `t` → 仅将日志发送至Telegram
- `f` → 仅将日志保存至文件
- `b` → 同时保存至文件并发送至Telegram
## 命令行选项
可通过标志跳过交互提示:
```
python .\app.py --telegram
python .\app.py --file
python .\app.py --both
```
也可直接通过命令行传递Telegram凭证:
```
python .\app.py --telegram --bot-token --chat-id
```
## 日志文件输出
启用文件日志后,日志将写入带时间戳的`logs/`文件中,例如:
```
logs/keylog_2026-05-17_170543.txt
```
应用每隔数秒向文件写入可读的批量内容,包括输入文本和特殊按键标签。仅修改键事件(如`Ctrl`、`Alt`、`Shift`)在文件中将被忽略,实际按键操作会被记录。
## Telegram通知
启用Telegram日志后,检测到的快捷键通知将发送至配置的机器人/聊天ID。
通知示例:
- `检测到复制操作:Ctrl + C`
- `检测到粘贴操作:Ctrl + V`
- `检测到刷新快捷键:Ctrl+Shift+R`
- `检测到Win+L:锁定屏幕`
## 退出说明
程序不会因单独按`Esc`而停止。
请使用以下方式安全退出:
- `Pause`(Break)键
- `ScrollLock`键
- `Ctrl+Alt+Shift+Q`
若上述按键在您的环境不可用或失效,可在终端使用`Ctrl+C`或通过任务管理器终止Python进程。
## 注意事项
- 请勿将真实的`.env`文件或机器人token提交至GitHub。
- `.gitignore`已排除`.env`文件。
- 本代码仅限学习和调试用途,禁止用于未授权监控。
## 许可证
本项目基于MIT许可证发布 — 详情请参阅[LICENSE](LICENSE)。
标签:ETW劫持, pynput库, Python开发, Telegram通知, 命令行应用, 快捷键检测, 按键捕获, 教育用途, 日志记录, 系统工具, 网络安全, 输入监控, 逆向工具, 键盘记录器, 隐私保护