我写了一个内核模块。它没有做任何有用的事情,

该模块的来源位于 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我的内核模块中。