Giter VIP home page Giter VIP logo

skdm's Introduction

Mobile sensor based keyboard decoding model (Acc, Audio)

Using accelerometer and microphone data to decode victim's keyboard input without any electronic hacking.

Experiment video will be announced

I Strongly prohibit any usage of this model and concept to be used in exploit situation.

Therefore, I'm not going to open data sets and exact methods directly to prevent exploit usage of method.

How it works?

introduction

Training phase

Record vibration & audio of the nearby device with a keypad using a smartphone.

from 0 to 9 and 'z', 'x', 'c', 'v', total of 14 classes of keyboard data is collected.

MacBook Pro, Macbook Air, Gaming Laptop, Wireless keyboard are used. Cafe noise and silent noise are combined.

Run through feature extractor & neural net to train.

Test phase

Split data for test & validation is used for testing.

Real-world usage

TBA, Demonstration of the project will be announced shortly

Finding a right picking place

Screenshot 2023-11-28 at 17 53 11

by comparing acc & audio data in plot I found that upper part of the laptop picks the most sharp edges of data

Data Preparation

Record data

data collection

I've collected data using Sensor Loggerapplication. Turn audio & accelerometer data option on.

Split data

data preparation

Feature Extraction

feature extraction

for Accelerometer, Auto-Correlation, PSD, and FFT were used for feature extraction.

and for Audio, MFCC, and FFT were used.

Train & Test

neural net

Inspired from TapNet we've made simple convolutional layers

result

Screenshot 2023-11-28 at 18 02 13

The best data is 93% accuracy.

This model also had F1 score: 0.8990. Precision: 0.8812 and Recall: 0.9175

file description

  • util.py : 연산에 필요한 각종 함수가 있습니다. CSV에 쓰기 등이 있습니다
  • feature Extractor.py : 데이터에 대한 featureExtractor함수가 들어있습니다.
  • data Preprocess.py : raw 데이터를 1 stroke에 맞게 가공하고, feature extraction을 수행합니다
    • slice() : 데이터를 자르는 interface입니다.
    • 이후 자동으로 데이터에 대한 feature extraction이 실행됩니다.
    • range(10, 14, 1) : range값을 조절하여 처리하고자하는 데이터를 지정합니다.
    • 데이터는 CSV가 존재할 경우 이어쓰기를 합니다. 필요시 파일을 삭제후 진행하십시오.
  • backup : 원본 데이터의 사본이 있습니다.
  • experimentData : 아이디어 검증 및 센서 데이터 수집 위치를 결정하기 위한 프로젝트입니다.
  • feature extraction을 구현하고, feature의 가짓수와 종류를 결정하는 프로젝트입니다.
  • data : raw한 데이터가 들어있습니다.

skdm's People

Contributors

jlstdio avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.