Coder Social home page Coder Social logo

pabl073 / kernel-module---keylogger Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 6 KB

I created a simple kernel module that has part of keylogger properties. It creates a device file named myDevice, where it writes all characters from user's input.

C 98.77% Makefile 1.23%

kernel-module---keylogger's Introduction

#Kernel-Keylogger

Acest modul este un driver de tastatură Linux care poate captura caracterele tastate și le poate expune prin intermediul unui fișier special (myDevice in directorul dev) în sistemul de fișiere. Modulul definește o structură numită "kbd" pentru a stoca informațiile despre caracterele tastate și un spinlock pentru a proteja accesul la această structură în timpul manipulării. Modulul definește, de asemenea, constantele pentru numele modulului, major-ul și minor-ul numărului de dispozitiv, numărul de dispozitive și adresele de înregistrare pentru tastatură. Acesta include si o funcție numită "is_key_press" care verifică dacă un cod de scanare corespunde unei apăsări sau eliberări a tastei și o funcție numită "get_ascii" care returnează caracterul corespunzător codului de scanare. Funcțiile kbd_init și kbd_exit sunt utilizate pentru a iniția și a elimina modulul din kernel. Funcția kbd_open initializeaza structura kbd.

Au fost incarcate si variantele de lucru pentru partea care trebuia sa includa timpul apasarii fiecarei taste si interfata in python unde sa se afiseze acestea. Interfata se bazeaza pe preluarea datelor de la nivelul unor atribute construite in partea de modul, care fac posibila citirea informatiilor de la nivelul kernel space in user space.

Modulul ar fi trebuit sa captureze codul scanat al tastei apăsate și îl mapează la un caracter, apoi stochează caracterul și timestamp-ul într-un buffer. Acest buffer poate fi citit de aplicații spațiu de utilizator. Driver-ul folosește funcția ktime_get_real_ns() pentru a obține timestamp-ul curent în nanosecunde. Partea cu timestamp ul nu am dus-o la capăt, dar toate celelalte funcționalități le-am implementat cu succes.(capturearea caracterelor apăsate, stocarea acestora într-un buffer, crearea unui fisier in /dev, scrierea acestora în fișier).

Rezultatele se pot vedea în urma inserării modulului de kernel (make keylogger.c; sudo insmod kbd.ko), scriind comanda sudo cat /dev/myDevice. Modulul se dezactivează prin comanda sudo rmmod keylogger.ko. Problemele întâmpinate

crearea fisierului din /dev
gasirea functiei potrivite pentru a obtine timpul apasarii unei taste (unele functii nu erau compatibile cu versiunea de kernel)
gasirea scancode-urilor pentru 95% din taste care sa fie compatbilie cu versiunea de kernel
dificultati la debug

kernel-module---keylogger's People

Contributors

pabl073 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.