You need to enable JavaScript to run this app. 如何使用Python实现Key Strokes Encryption 开发类似KeyScrambler的防keylogger功能
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python实现Key Strokes Encryption 开发类似KeyScrambler的防keylogger功能

Python实现类KeyScrambler按键加密的可行方案

KeyScrambler的核心逻辑是在内核层键盘驱动链的最上层挂载过滤驱动,先于所有按键记录程序拿到原始按键数据,加密后再向下传递,只有信任应用的输入流程中会解密得到真实内容,按键记录程序不管在哪个层级捕获都只能拿到加密后的乱码。以下是三种不同安全等级的Python实现方案:

方案1:用户态轻量实现(对抗普通用户态按键记录程序)

适合普通场景使用,不需要系统级权限,开发成本最低

  • 依赖库:Windows平台用keyboard+pywin32,Linux平台用keyboard+python-xlib,macOS平台用keyboard+pyobjc
  • 实现流程:
    1. 调用keyboard.hook()注册全局按键钩子,将钩子优先级设置为最高,捕获到原始按键事件后立即调用keyboard.suppress_event()屏蔽原始输入向上层传递
    2. 内置动态对称加密逻辑(推荐用AES-128,密钥可以用当前激活窗口句柄+时间戳动态生成),将原始按键值加密为无意义的随机字符序列
    3. 检测当前激活窗口的进程路径,匹配到你预设的信任应用列表(比如浏览器、记事本、Office软件)时,直接调用平台原生的输入注入接口(Windows用SendInput,Linux用XTestFakeKeyEvent,macOS用CGEventPost)向目标窗口发送解密后的真实按键事件;非信任应用则只发送加密后的乱码字符
  • 局限性:只能对抗普通用户态按键记录程序,无法防御内核级按键记录程序,部分安全软件可能会误报高优先级钩子行为为恶意操作

方案2:内核驱动封装实现(接近KeyScrambler原生效果)

可以对抗内核级按键记录程序,安全等级最高,需要系统级权限

  • 核心思路:Python不直接编写内核驱动,而是作为用户态控制端调用预编译的键盘过滤驱动接口实现加密逻辑
  • 实现流程:
    1. 提前编译对应平台的键盘过滤驱动:Windows下开发WDF过滤驱动挂载在Kbdclass驱动上层,Linux下开发input子系统过滤驱动,macOS下开发IOKit过滤驱动;驱动核心逻辑是拿到键盘原始扫描码后先做加密替换,只有收到合法的解密请求时才返回真实扫描码
    2. 用Python的ctypes库调用驱动暴露的IOCTL控制接口,完成加密规则配置、信任进程列表更新、动态密钥修改等操作
    3. 对信任的目标应用,通过Python实现远程线程注入,将解密回调函数注入到目标进程的消息处理循环中,收到加密按键消息后直接解密再传递给应用的输入控件
  • 局限性:Windows平台需要驱动签名才能正常运行,否则会被系统安全机制拦截;Linux和macOS需要root权限/关闭SIP才能加载自定义驱动,开发调试成本较高

方案3:虚拟键盘隔离实现(兼容性最好,零钩子冲突)

完全不依赖全局按键钩子,不会和其他软件的热键逻辑冲突,适合对兼容性要求高的场景

  • 核心思路:用户所有输入都通过自定义的虚拟键盘完成,全程不产生全局按键事件,按键记录程序无法捕获到任何有效输入内容
  • 实现流程:
    1. 用PyQt/Tkinter开发屏幕虚拟键盘UI,设置窗口属性为顶层显示、不抢占输入焦点,避免点击虚拟键盘时打断当前应用的输入状态
    2. 捕获虚拟键盘的点击事件后,不调用全局输入注入接口,而是直接通过平台原生的消息发送接口(Windows用SendMessage发送WM_CHAR/WM_SETTEXT消息)向目标输入控件传递真实输入内容
    3. 可以额外加入混淆逻辑:每次点击虚拟键盘时随机发送3-5个无意义的全局按键事件,干扰可能存在的按键记录程序的记录结果
  • 局限性:用户需要适应虚拟键盘的输入逻辑,输入效率低于物理键盘

补充说明:所有软件层面的按键加密方案都无法100%对抗已经获得系统最高权限的恶意程序,如果攻击者可以直接读取物理键盘的IO端口数据,任何加密逻辑都存在被破解的可能。

内容的提问来源于stack exchange,提问作者Qjka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 01:36:02