9,036
stars
+0+0+2
606
forks
134
watchers
17
prs
36
issues
2
releases
–
discussions
README
kbd-audio
=====
This is a collection of command-line and GUI tools for capturing and analyzing audio data.
Keytap
The most interesting tool is called keytap - it can guess pressed keyboard keys only by analyzing the audio captured from the computer's microphone.
Check this blog post for more details:
Keytap: description and some random thoughts
Video: short demo of Keytap in action
Try it online:
Keytap2
The keytap2 tool is another interesting tool for recovering text from audio. It does not require training data - instead it uses statistical information about the frequencies of the letters and n-grams in the English language.
A more detailed description of the tool is available here: Keytap2 discussion
Video: short demo of Keytap2 in action
CTF: can you guess the text being typed?
Try it online:
Keytap3
This version introduces significant algorithm improvements and better n-gram statistics compared to keytap2. The attack is now fully
automated and does not require any manual intervation during the text recovery process.
Video: short demo of using Keytap3
Video: another example of using Keytap3
GUI for Keytap3
Check if your keyboard is vulnerable to Keytap:
What people say about Keytap
"This works incredibly well.\
I hope you realize what you've created (and made available to every person in the world)." -- ffpip
"I just tried it and it works incredibly well. It kind of makes me want to stop using a mechanical keyboard." -- Karawebnetwork
"This attack and Van Eck phreaking are why Edward Snowden, while typing passwords and other sensitive information, would pull a blanket over himself and his laptop." -- aarchi
"This is what mechanical keyboard users deserve" -- super guy
"fuck.." -- Lluis Franco
Build instructions
Dependencies:
- SDL2 - used to capture audio and to open GUI windows 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 (optional) - some of the helper tools perform Fourier transformations 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
Tools
Short summary of the available tools. If the status of the tool is not stable, expect problems and non-optimal results.
| Name | Type | Status |
| --- | --- | --- |
| record | text | stable |
| record-full | text | stable |
| play | text | stable |
| play-full | text | stable |
| view-gui | gui | stable |
| view-full-gui | gui | stable |
| key-detector | text | stable |
| keytap | text | stable |
| keytap-gui | gui | stable |
| keytap2-gui | gui | stable |