kbd-audio - 这是用于捕获和分析音频数据的命令行和 GUI 工具的集合。能通过分析从计算机麦克风捕获的音频来猜测按下的键盘键。

Created at: 2018-08-28 01:19:02
Language: C++
License: MIT

kbd-音频

操作状态

这是用于捕获和分析音频数据的命令行和 GUI 工具的集合。

按键

最有趣的工具称为按键 - 它只能通过分析从计算机麦克风捕获的音频来猜测按下的键盘键。

查看此博客文章以获取更多详细信息:

按键:描述和一些随机的想法

视频:按键操作的简短演示

在线试用:

按键2

键敲2工具是另一个有趣的工具,用于从音频中恢复文本。它不需要训练数据 - 相反,它使用有关英语中字母和n-gram频率的统计信息。

有关该工具的更详细说明,请参阅此处:Keytap2 讨论

视频:Keytap2 的实际操作的简短演示

CTF:你能猜出正在输入的文本吗?

在线试用:

按键3

与 keytap2 相比,此版本引入了重大的算法改进和更好的 n-gram 统计。攻击现在是完全自动化的,在文本恢复过程中不需要任何手动干预。

视频:使用 Keytap3 的简短演示

视频:使用 Keytap3 的另一个示例

按键的图形用户界面3

检查你的键盘是否容易受到按键攻击:

人们对按键的评价

“这非常有效。
我希望你意识到你创造了什么(并提供给世界上的每个人)。
-- FFPIP

“我刚刚尝试过,效果非常好。这让我想停止使用机械键盘。-- 卡拉网络

“这次攻击和范埃克的疯狂是爱德华·斯诺登在输入密码和其他敏感信息时会给自己和笔记本电脑盖上毯子的原因。- 阿奇

“这是机械键盘用户应得的” -- 超级家伙

“操..”- 路易斯·佛朗哥

构建说明

依赖:

  • SDL2 - 用于捕获音频和打开 GUI 窗口 libsdl

    [Ubuntu]
    $ sudo apt install libsdl2-dev
    
    [Mac OS with brew]
    $ brew install sdl2
    
    [MSYS2]
    $ pacman -S git cmake make mingw-w64-x86_64-dlfcn mingw-w64-x86_64-gcc mingw-w64-x86_64-SDL2
    
  • FFTW3(可选)- 一些辅助工具执行傅里叶变换 fftw

Linux, FreeBSD, Mac OS, Windows (MSYS2 + MinGW)

git clone https://github.com/ggerganov/kbd-audio
cd kbd-audio
git submodule update --init
mkdir build && cd build
cmake ..
make

工具

可用工具的简短摘要。如果工具的状态不稳定,则可能会出现问题和非最佳结果。

名字 类型 地位
记录 发短信 稳定
记录满 发短信 稳定
发短信 稳定
玩满 发短信 稳定
视图-贵 图形用户界面 稳定
查看完整图形用户界面 图形用户界面 稳定
钥匙检测器 发短信 稳定
按键 发短信 稳定
按键 gui 图形用户界面 稳定
按键2-gui 图形用户界面 稳定
按键3 发短信 稳定
按键3-gui 图形用户界面 稳定
- 额外 -
猜测-qp 发短信 实验
猜测-qp2 发短信 实验
按键3-多 发短信 实验
规模 发短信 实验
苏打破 发短信 实验
键平均 gui 图形用户界面 实验
按键2 发短信 实验

工具详细信息

  • 记录满

    将音频录制到磁盘上的原始二进制文件

    ./record-full output.kbd [-cN]
    

  • 玩满

    播放通过完整录制工具捕获的录制内容

    ./play-full input.kbd [-pN]
    

  • 记录

    仅在键入时录制音频。用于收集按键的训练数据

    ./record output.kbd [-cN] [-CN]
    

  • 播放通过录制工具创建的录制文件

    ./play input.kbd [-pN]
    

  • 按键

    通过麦克风音频捕获实时检测按下的按键。使用通过记录工具捕获的训练数据。

    ./keytap input0.kbd [input1.kbd] [input2.kbd] ... [-cN] [-CN] [-pF] [-tF]
    

  • 按键 gui

    通过麦克风音频捕获实时检测按下的按键。使用通过记录工具捕获的训练数据。图形用户界面版本。

    ./keytap-gui input0.kbd [input1.kbd] [input2.kbd] ... [-cN] [-CN]
    

    在线演示:https://keytap.ggerganov.com


  • keytap2-gui record.kbd n-gram-dir [-pN] [-cN] [-CN]

    通过麦克风音频捕获检测按下的键。使用有关语言的统计信息(n-gram频率)。不需要训练数据“record.kbd”输入文件必须通过完整记录工具生成,并包含将要分析的音频数据。“n-gram-dir”文件夹文件必须包含相应语言的 n-gram 概率文件。

    ./keytap2-gui record.kbd ../data
    

    在线演示:https://keytap2.ggerganov.com


  • 按键3

    全自动从录音中恢复未知文本。

    ./keytap3 input.kbd ../data [-cN] [-CN] [-pF] [-tF] [-FN] [-fN]
    

    在线演示:https://keytap3.ggerganov.com


  • 按键3-gui

    按键 3 工具的 GUI 版本。

    ./keytap3-gui input.kbd ../data [-cN] [-CN] [-pF] [-tF] [-FN] [-fN]
    

    在线演示:https://keytap3-gui.ggerganov.com


  • 查看完整图形用户界面

    可视化使用记录完整工具记录的波形。还可以播放音频数据。

    ./view-full-gui input.kbd [-pN]
    

    查看完整图形用户界面


  • 视图-贵

    可视化使用记录工具记录的训练数据。还可以播放音频数据。

    ./view-gui input.kbd [-pN]
    

    查看完整图形用户界面


反馈

非常感谢有关工具性能的任何反馈。请在此处发表评论。