
🎤⌨️ 음향 키보드 도청
이것은 오디오 데이터를 캡처하고 분석하기 위한 명령줄 및 GUI 도구 모음입니다.
가장 흥미로운 도구는 keytap입니다. 이 도구는 컴퓨터 마이크에서 캡처한 오디오만 분석하여 누른 키보드 키를 추측할 수 있습니다.
자세한 내용은 다음 블로그 게시물을 확인하세요:
keytap2 도구는 오디오에서 텍스트를 복구하는 또 다른 흥미로운 도구입니다. 이 도구는 학습 데이터가 필요하지 않으며, 대신 영어의 문자 및 n-gram 빈도에 대한 통계 정보를 사용합니다.
도구에 대한 자세한 설명은 여기에서 확인할 수 있습니다: Keytap2 토론
이 버전은 keytap2에 비해 상당한 알고리즘 개선과 더 나은 n-gram 통계를 도입했습니다. 이제 공격이 완전히 자동화되어 텍스트 복구 과정 중에 수동 개입이 필요하지 않습니다.
"정말 놀랍게 작동합니다.
당신이 만든 것(그리고 그것을 전 세계 모든 사람이 사용할 수 있도록 한 것)을 깨닫길 바랍니다." -- ffpip
"방금 시도해봤는데 정말 놀랍게 작동합니다. 기계식 키보드 사용을 중단하고 싶게 만드네요." -- Karawebnetwork
"이 공격과 Van Eck 도청이 Edward Snowden이 비밀번호나 민감한 정보를 입력할 때 자기와 노트북 위에 담요를 덮는 이유입니다." -- 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 | 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 |
| keytap3 | text | stable |
| keytap3-gui | gui | stable |
| - | extra | - |
| guess-qp | text | experiment |
| guess-qp2 | text | experiment |
| keytap3-multi | text | experiment |
| scale | text | experiment |
| subreak | text | experiment |
| key-average-gui | gui | experiment |
| keytap2 | text | experiment |
./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