annithehunter/windows-api-keylogger
GitHub: annithehunter/windows-api-keylogger
一个使用 Python ctypes 和 wintypes 直接调用 Windows API 的教学型键盘记录器,用于恶意软件分析和防御安全研究。
Stars: 2 | Forks: 0
# Windows API Python 键盘记录器(教育项目)
## 概述
本项目是一个基于 **Windows API 的键盘记录器**,使用 Python 的 **ctypes** 和 **wintypes** 编写。它不依赖任何第三方库,而是直接与 Windows API 交互,以演示如何在底层监控键盘事件。
该应用程序在本地运行,不仅能记录键盘事件,还能识别当前正在接收输入的活动窗口。开发此项目旨在更好地理解 Windows 内部原理、用户输入处理机制,以及安全专业人员在分析恶意软件或构建防御性检测时所需掌握的技术。
## 功能
* 原生 Windows API 实现
* 完全使用 Python 的 **ctypes** 和 **wintypes** 编写
* 在本地监控键盘事件
* 识别与键盘输入关联的活动应用程序/窗口
* 无需外部键盘挂钩库的轻量级实现
* 专为 Windows 内部原理和恶意软件分析的教育研究而设计
## 技术栈
* Python 3
* Windows API
* ctypes
* wintypes
## 学习目标
本项目帮助我理解了:
* 从 Python 中与 Windows API 交互
* 使用 `ctypes` 调用原生 Win32 函数
* Windows 消息处理
* 键盘事件处理
* 活动窗口识别
* 底层 Windows 编程
* 恶意软件分析基础
* 端点检测概念
## 项目结构
```
.
├── keylogger.py
├── README.md
└── requirements.txt
```
## 安装说明
```
git clone https://github.com/annithehunter/windows-api-keylogger.git
cd windows-api-keylogger
```
如果实现仅使用 Python 标准库和 Windows API,则不需要任何第三方包。
运行程序:
```
python keylogger.py
```
## 为什么要开发这个项目?
理解攻击技术是成为一名高效的网络安全专业人员的重要组成部分。通过学习如何使用原生 Windows API 来监控用户输入,防御者可以更好地理解:
* 窃取凭据的恶意软件是如何运作的
* 端点检测与响应(EDR)解决方案如何识别可疑行为
* 安全分析师如何调查恶意软件
* 为什么监控 API 使用是一项重要的防御策略
## 未来改进
* 改进的日志格式
* 时间戳支持
* 更好的模块化
* 单元测试
* 为防御者提供检测规则示例
* 记录所使用的 Windows API 函数文档
## 仅限教育用途
本代码库仅供网络安全教育、恶意软件分析和授权的安全测试使用。请仅在您拥有明确许可的环境中使用。
标签:ctypes, DAST, Python, Windows API, 恶意软件分析, 无后门, 端点可见性, 键盘记录器