We wrote about keylogging in this article, and used gcc and Linux to intercept and decode a key push via the parallel port. We have also written in the past about various homebrew projects where a limited development system would be very useful. The perfect platform for many of these projects is discarded PCs that can’t run a full OS well. There is a project called uClibc that provides a stripped down version of glibc, a gcc compiler, and a full set of OS utilities. We will show how to bring up various stand-alone versions of this in the future; however, we will give you a taste of what this project can provide in this article.
We used the root_fs-i386.bz2, avalable here. This is an ext2 filesystem image that we can uncompress, mount, and chroot to:
root@srv-1 u-1 # bzip2 -d root_fs-i386.bz2 root@srv-1 u-1 # mount -t ext2 -o loop ./root_fs-i386 /mnt root@srv-1 u-1 # chroot /mnt root@srv-1 / # du 0 ./lost+found 2111 ./bin 8 ./etc/init.d 130 ./etc . . . 52146 ./usr 0 ./var/lib 0 ./var/empty 0 ./var 0 ./dev/pts 0 ./dev 57138 . root@srv-1 / #
OK. That is pretty cool. An entire system under 58 megs. Now, to build a standalone system, we will need a kernel and some other stuff, and we will do this in other articles. What we really want to know, though, is could this system compile the keylog program:
root@srv-1 / # gcc logkey.c root@srv-1 / # ./a.out Q root@srv-1 / #
Oh yeah! Stay tuned. More to come.