总结以下前一阵做的一个大作业(hack掉部分系统调用)遇到的各类问题
首先是加载内核模块时报错:
Nov 26 19:42:05 baijiaao kernel: helloworld: Unknown symbol __x86_indirect_thunk_rax (err 0)
Nov 26 19:59:46 baijiaao kernel: helloworld: disagrees about version of symbol path_get
Nov 26 19:59:46 baijiaao kernel: helloworld: Unknown symbol path_get (err -22)
Nov 26 19:59:46 baijiaao kernel: helloworld: Unknown symbol _raw_qspin_lock (err 0)
主要问题就是编译内核模块时引用的头文件与当前版本内核不一致,检查一下当前内核版本和kernel-devel版本号,我直接yum install kernel-devel下载的头文件,然而下载的版本不符,yum search了一下发现没有符合的。后来直接去centos官网里面下载,也可以自己编译一个。
遇到的其他问题已经忘了,只记得翻了好久内核头文件去找相应功能的内核函数。。
以及用32位系统上去掉cr0写保护的代码在64位系统上跑。。无限死机