summaryrefslogtreecommitdiff
path: root/informationals/teso-i0011.txt
diff options
context:
space:
mode:
Diffstat (limited to 'informationals/teso-i0011.txt')
-rw-r--r--informationals/teso-i0011.txt42
1 files changed, 42 insertions, 0 deletions
diff --git a/informationals/teso-i0011.txt b/informationals/teso-i0011.txt
new file mode 100644
index 0000000..36879fc
--- /dev/null
+++ b/informationals/teso-i0011.txt
@@ -0,0 +1,42 @@
10011 2000/02/01 Linux keyboard handler tricks
2
3==== TESO Informational =======================================================
4This piece of information is to be kept confidential.
5===============================================================================
6
7Description ..........: Linux kernel keyboard handling
8Date .................: 2000/02/01 17:00
9Author ...............: Palmers
10Publicity level ......: known
11Affected .............: Linux kernel
12Type of entity .......: kernel module
13Type of discovery ....: useful information
14Severity/Importance ..: low
15Found by .............: Palmers
16
17Information ===================================================================
18
19It is (in theory) easy to (1) free keyboards IRQ, then (2) install a keylogger,
20and (3) reinstall the original interrupt handler. It has to be freed first to
21reinstall the first handler to the, then shared, interrupt.
22
23The stuff that deal with this can be found in:
24
25<src-dir>/arch/i386/kernel/irq.c (free_irq, request_irq)
26<src-dir>/drivers/char/pc_keyb.c (kbd stuff)
27
28as well as in:
29<src-dir>/include/asm-i386/keyboard.h
30<src-dir>/arch/i386/kernel/irq.h
31<src-dir>/include/linux/interrupt.h
32
33Ok, an interrupt handler has three arguments:
34interrupt_handler (int irq, void *dev_id, struct pt_regs *regs)
35
36Which are - you guess it - interrupt, id and a pt_regs struct (which leads
37to the need for asm). The logger simply needs to pop the byte, read from the
38keyboard, and write it in a file, the original interrupt handler could be
39restored using pc_keyb.c (with some modifications).
40
41===============================================================================
42