<div>This article gave a very indepth coverage of the keyboard processing in linux:</div><div><br></div><a href="http://www.phrack.com/issues.html?issue=59&id=14&mode=txt">http://www.phrack.com/issues.html?issue=59&id=14&mode=txt</a><div>
<br><a href="http://www.gadgetweb.de/programming/39-how-to-building-your-own-kernel-space-keylogger.html">http://www.gadgetweb.de/programming/39-how-to-building-your-own-kernel-space-keylogger.html</a><div><br></div><div>
Not sure about your architecture, but for my Lenovo laptop, when I do a "cat /dev/input/by-path/platform-i8042-serio-0-event-kbd" and redirect to a file, every single key input I entered is captured into the the file.</div>
<div><br></div><div>Therefore, looking into the kernel source, we can infer the files drivers/input/serio/i8042.c are responsible for the keyboard processing. Of course, this file is compiled into the kernel, not as a kernel module. So if u want to make any changes, instead of recompile the kernel and rebooting, one way to do dynamically is called "inline hooking" - look elsewhere for this method. It is explained in the following article:</div>
<div><br></div><div><a href="http://www.phrack.com/issues.html?issue=59&id=14&mode=txt">http://www.phrack.com/issues.html?issue=59&id=14&mode=txt</a></div><div><br></div><div>but note the difference between the Phrack's interception and intercepting the API inside the i8042.c: when you do a "cat /dev/input/by-path/platform-i8042-serio-0-event-kbd" the keyboard entry is always captured - irregardless of whichever windows/terminal you are in. But the Phrack's method is cleaner - it is intercepting at the tty (eg drivers/tty/n_tty.c:receive_buf() inside the kernel source) level - so if you switch over to another window, the input got switch away - it is thus targetted to only that TTY.</div>
<div><br></div><div>And btw, USB keyboard's processing path is altogether different again....another </div><div><br></div><div><a href="http://www.lrr.in.tum.de/Par/arch/usb/download/usbdoc/usbdoc-1.32.pdf">http://www.lrr.in.tum.de/Par/arch/usb/download/usbdoc/usbdoc-1.32.pdf</a></div>
<div><br></div><div>and perhaps u can read here many good writeups:</div><div><br></div><div><a href="http://stackoverflow.com/search?q=usb+keyboard+kernel">http://stackoverflow.com/search?q=usb+keyboard+kernel</a></div><div>
<br></div><div><br><div class="gmail_quote">On Fri1, Dec 14, 2012 at 3:46 PM, manty kuma <span dir="ltr"><<a href="mailto:mantykuma@gmail.com" target="_blank">mantykuma@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,11<br><br>I have written a small module that toggles the capslock LED. To demonstrate it i want to replace the Existing keyboard module with mine. I tried lsmod|grep "key" without any success. also checked /proc/modules. I couldnot find any clue regarding the name of the module i need to uninstall. So, How can i remove the existing keyboard module and insert mine?<br>
<br>Regards,<br>Manty<br><br><br>
<br>_______________________________________________<br>
Kernelnewbies mailing list<br>
<a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
<a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Regards,<br>Peter Teoh
</div></div>