MDK-4203/Assembly-Keylogger

GitHub: MDK-4203/Assembly-Keylogger

一个教育性质的 x64 汇编键盘记录器,演示低级输入拦截与系统防御机制,用于理解架构与安全原理。

Stars: 0 | Forks: 0

# readme # 通过 x64 汇编进行架构利用:低级键盘记录器 一个教育性质的证明概念,演示如何通过低级 x64 汇编编程利用基础计算机架构原理。 ## 📋 项目概述 本项目实现了一个 x64 汇编语言的低级键盘记录器,以演示硬件架构(寄存器、栈、内存段)与系统安全之间的关键关系。它是一个教育工具,用于理解为什么现代操作系统需要多层防御机制。 ## ⚠️ 仅限教育用途 **本项目严格仅限教育和研究用途。** - 仅测试您拥有或明确获得许可的系统 - 理解防御机制,而非绕过它们 - 遵守所有适用法律(CFAA、计算机滥用法、PECA 2016) ## 🎯 关键学习目标 - x64 架构与调用约定 - 内存分段与管理 - 低级系统编程 - 基于硬件的安全机制 - 漏洞开发原理 - 纵深防御策略 ## 🔧 技术实现 ### 架构组件 - **x64 Windows ABI 合规性** - 寄存器使用(RCX、RDX、R8、R9 作为参数) - 影子空间需求(32 字节) - 栈对齐(16 字节) ### 核心模块 ### 1. 环境侦察 - API 函数解析 - 环境变量访问 - 内存地址计算 ### 2. 持久化机制 - 注册表操作(HKCU) - 基于句柄的 API 操作 - 内存映射 I/O ### 3. 钩子安装 - SetWindowsHookExA 实现 - 低级键盘钩子(WH_KEYBOARD_LL) - 中断描述符表(IDT)链 - Ring 0 到 Ring 3 的转换 ### 4. 数据外泄 - 高效字符串操作(rep movs) - 文件 I/O 与缓冲 - 寄存器分配优化 ### 钩子过程 - 调用约定合规 - 非易失性寄存器保存 - 按键处理流水线 - 上下文捕获(前台窗口、用户名、计算机名) - 键码转换(扫描码到 ASCII) ## 🛡️ 分析的防御机制 ### 硬件级防御 - **DEP/NX 位**:数据执行保护 - **ASLR**:地址空间布局随机化 - **栈保护器**:缓冲区溢出保护 - **CFG**:控制流防护 ### 操作系统级防御 - 内联钩子扫描 - SSDT 完整性检查 - 线程栈分析 - 基于机器学习的检测 ## 📊 CIA 三元组影响分析 - **机密性**:关键 - 完全妥协 - **完整性**:高 - 潜在修改 - **可用性**:低 - 最小性能影响 ## 🔬 研究贡献 - 冯·诺依曼架构漏洞的演示 - x64 调用约定利用 - 低级输入拦截技术 - 多层防御分析 ## 📚 参考资料 - Intel® 64 和 IA-32 架构软件开发者手册 - Microsoft x64 调用约定文档 - 《Windows Internals》(第 7 版) - 《The Shellcoder’s Handbook》 ## 作者 **Daniyal Aftab Mirza** ## 许可证 仅限教育和研究用途。未经授权的使用是非法的。
标签:ASLR, CFG, DEP, Ring 0到Ring 3, SetWindowsHookEx, Windows API钩子, x64 Windows ABI, x64汇编, 中断描述符表, 云资产清单, 低层输入拦截, 低层键盘钩子, 内存分段, 堆栈对齐, 安全报告生成, 安全防御研究, 影子空间, 情报收集, 持久化机制, 教育演示, 数据外泄, 注册表操纵, 漏洞研究, 硬件安全机制, 端点可见性, 系统编程, 调用约定, 逆向工程, 键盘记录器, 防御性安全研究