读代码最怕没有实践,LKM给了最好的练手机会,但是由于能力有限,感觉能做的LKM 还是很少,但是随着阅读代码量的增加,经验的积累,会有很多LKM可以做,从中也可以最亲密的接触kernel,以这个list记下做过的和想做的LKM小实验,以及LKM资料收集:
1.http://tldp.org/LDP/lkmpg/2.6/html/ 相当不错入门资料,可以快速入手
2.netlink 涉及到网络层,可以从内核态实现,从用户态验证,资料散在网上慢慢搜吧
3.keylog 键盘记录(从input层做截获)
4.file hide 文件隐藏 主要是sys_getdents64及相关hook 实用性不行了,但是技术要学
5.process hide 同上
6.module hide 同上
7.http://hi.baidu.com/wzt85/blog/category/Rootkit 博主内核和内核安全和rookit都在行,入门rootkit
8.http://blog.youkuaiyun.com/varg_vikernes/ 网络rootkit,留着慢慢看
9.驱动书两本:LDD/ELLD
10.netfilter做个小型防火墙
11.http://www.phrack.org/issues.html 老牌黑客杂志,linux rt经常有介绍
12.仿照ramfs/proc构建基于内存的文件系统 仿照minix/ext2构建基于块设备的文件系统
13.写个块设备:http://linux.chinaunix.net/bbs/viewthread.php?tid=1045283&extra=page%3D1%26amp;filter%3Ddigest
全15章都做下来,再看下sb_bread块设备层次结构就大致清楚了
仿写ramdisk块设备
14. 仿写drivers/char/mem.c
15. 仿写loop块设备驱动(I/O被简化过),和用户态losetup程序