
これは、オーディオデータのキャプチャと分析のためのコマンドラインツールおよびGUIツールのコレクションです。
最も興味深いツールは keytap です。これは、コンピュータのマイクからキャプチャしたオーディオを解析するだけで、押されたキーボードのキーを推測できます。
詳細はこちらのブログ投稿をチェックしてください:
keytap2 ツールは、オーディオからテキストを復元するためのもう一つの興味深いツールです。トレーニングデータは不要で、代わりに英語の文字とn-gramの頻度に関する統計情報を使用します。
ツールの詳細な説明はこちら: Keytap2 ディスカッション
このバージョンでは、keytap2 と比較してアルゴリズムの大幅な改善とより良い n-gram 統計が導入されています。攻撃は完全に自動化され、テキスト復元プロセス中に手動での介入は必要ありません。
あなたのキーボードが Keytap に対して脆弱かどうかを確認:
"これは信じられないほどよく動作します。
自分が何を作り出したか(そして世界中の誰でも利用できるようにしたか)を理解してほしいです。" -- ffpip
"試してみたところ、信じられないほどよく動作します。メカニカルキーボードを使うのをやめたくなるような感じです。" -- Karawebnetwork
"この攻撃と Van Eck 盗聴が、エドワード・スノーデンがパスワードやその他の機密情報を入力する際に、自分自身とラップトップに毛布をかぶせていた理由です。" -- aarchi
"これこそメカニカルキーボードユーザーにふさわしいものです" -- super guy
"くそっ.." -- Lluis Franco
依存関係:
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
利用可能なツールの簡単な概要。ツールのステータスが stable でない場合、問題や最適でない結果が生じる可能性があります。
record-full
オーディオをディスク上の生のバイナリファイルに記録します
./record-full output.kbd [-cN]
play-full
record-full ツールでキャプチャした録音を再生します
./play-full input.kbd [-pN]
record
タイピング中のみオーディオを記録します。keytap のトレーニングデータ収集に便利です
./record output.kbd [-cN] [-CN]
play
record ツールで作成した録音を再生します
./play input.kbd [-pN]
keytap
リアルタイムでマイクオーディオキャプチャを介して押されたキーを検出します。record ツールでキャプチャしたトレーニングデータを使用します。
./keytap input0.kbd [input1.kbd] [input2.kbd] ... [-cN] [-CN] [-pF] [-tF]
keytap-gui
リアルタイムでマイクオーディオキャプチャを介して押されたキーを検出します。record ツールでキャプチャしたトレーニングデータを使用します。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' 入力ファイルは record-full ツールで生成する必要があり、分析するオーディオデータが含まれます。'n-gram-dir' フォルダには、対応する言語の n-gram 確率ファイルが含まれている必要があります。
ツールのパフォーマンスに関するフィードバックは大歓迎です。こちらにコメントをお寄せください。
| 名前 | タイプ | ステータス |
|---|
| record | テキスト | 安定 |
| record-full | テキスト | 安定 |
| play | テキスト | 安定 |
| play-full | テキスト | 安定 |
| view-gui | GUI | 安定 |
| view-full-gui | GUI | 安定 |
| key-detector | テキスト | 安定 |
| keytap | テキスト | 安定 |
| keytap-gui | GUI | 安定 |
| keytap2-gui | GUI | 安定 |
| keytap3 | テキスト | 安定 |
| keytap3-gui | GUI | 安定 |
| - | その他 | - |
| guess-qp | テキスト | 実験 |
| guess-qp2 | テキスト | 実験 |
| keytap3-multi | テキスト | 実験 |
| scale | テキスト | 実験 |
| subreak | テキスト | 実験 |
| key-average-gui | GUI | 実験 |
| keytap2 | テキスト | 実験 |
./keytap2-gui record.kbd ../data
オンラインデモ: https://keytap2.ggerganov.com
keytap3
オーディオ録音から未知のテキストを完全自動で復元します。
./keytap3 input.kbd ../data [-cN] [-CN] [-pF] [-tF] [-FN] [-fN]
オンラインデモ: https://keytap3.ggerganov.com
keytap3-gui
keytap3 ツールの GUI 版。
./keytap3-gui input.kbd ../data [-cN] [-CN] [-pF] [-tF] [-FN] [-fN]
オンラインデモ: https://keytap3-gui.ggerganov.com