Skip to content

kbdlogger

Rafael do Nascimento Pereira edited this page Jan 29, 2015 · 5 revisions

Keyboard Logger driver

1 What is it for ?

2 Looking at the code

0 - static structures before init

static const struct file_operations evdev_fops = {
	.owner		= THIS_MODULE,
	.read		= lbddev_read,
	.open		= kbddev_open,
	.release	= kbddev_release,
	.fasync		= kbddev_fasync,
	.flush		= kbddev_flush,
};

1 - init/register

init() input_register_handler()

2 - create new input device and connect/register it connect() input_register_handle() cdev_init() cdev_add() device_add()

3 - receive event event()

2.1 Driver initialization

2.2 Driver cleanup

3 Executing the code

References: (1) fasync http://www.makelinux.net/ldd3/chp-6-sect-4 (2) wait_queues / events: https://www.kernel.org/doc/htmldocs/device-drivers/ch01s04.html (3) wait queue http://tuxthink.blogspot.de/2011/04/wait-queues.html