我写了一个内核模块。它没有做任何有用的事情,
该模块的来源位于 https://gist.github.com/jvns/6878994
它拦截所有传入的数据包,并将“ Hello数据包”打印到内核日志中。它使用了Netfilter框架,这是我从中学到的。
要安装它,您可以运行:
$ make$ insmod hello-packet.ko
然后
$ rmmod hello-packet.ko
删除它。。
一些其他资源:
(我想明天我要写一个Rootkit。eee。)
一路上我学到了一些东西:
您不能malloc
在内核内部使用(?!!?)。这是因为内核中使用的所有内容都需要在内核中定义,并且malloc
在glibc中。回想起来,这似乎很明显,但我的想法却很震撼。
同样,您不能在内核中使用glibc中的任何内容。
有明显的东西叫kmalloc
并且vmalloc
,您可以使用来代替。我还不知道这些是什么。
这是真的很容易写的防火墙不允许任何数据包或缩小-只需更换NF_ACCEPT
与NF_DROP
我的内核模块中。