所以,我刚刚开始经历设计 BSD Rootkit我似乎马上就遇到了问题。
你好ç:
#include <sys/param.h>
#include <sys/module.h>
#include <sys/kernel.h>
#include <sys/systm.h>
static int
load(struct module *module, int cmd, void *arg) {
int error = 0;
switch (cmd) {
case MOD_LOAD:
uprintf("hello, world!\n");
break;
case MOD_UNLOAD:
uprintf("good-bye");
break;
default:
error = EOPNOTSUPP;
break;
}
return(error);
}
static moduledata_t hello_mod = {
"hello",
load,
NULL
};
DECLARE_MODULE(hello, hello_mod, SI_SUB_DRIVERS, SI_ORDER_MIDDLE);
使用以下 Makefile 进行编译似乎工作得很好:
生成文件:
KMOD= hello
SRCS= hello.c
.include <bsd.kmod.mk>
但跑步时sudo kldload ./hello.ko
它告诉我该模块已经:
kldload: can't load ./hello.ko: module already loaded or in kernel
跑步sudo kldstat -v | grep hello
没有找到任何东西。
作为最后一步,我尝试使用卸载模块sudo kldunload hello
我得到以下输出:
kldunload: can't find file hello.ko
我尝试运行上述命令,但都root
没有freebsd
成功。
为了完整起见,这里有更多信息
ls-la:
total 224 drwxr-xr-x 2 freebsd freebsd 512 Dec 7 22:40 . drwxr-xr-x 4 freebsd freebsd 512 Dec 7 22:16 ..
-rw-r--r-- 1 freebsd freebsd 1386 Dec 7 22:40 .depend.hello.o
-rw-r--r-- 1 freebsd freebsd 50 Dec 7 22:07 Makefile
-rw-r--r-- 1 freebsd freebsd 0 Dec 7 22:40 export_syms
-rw-r--r-- 1 freebsd freebsd 488 Dec 7 22:08 hello.c
-rw-r--r-- 1 freebsd freebsd 3176 Dec 7 22:40 hello.kld
-rwxr-xr-x 1 freebsd freebsd 199904 Dec 7 22:40 hello.ko
-rw-r--r-- 1 freebsd freebsd 2864 Dec 7 22:40 hello.o lrwxr-xr-x 1 freebsd freebsd 26 Dec 7 22:40 machine -> /usr/src/sys/arm64/include
uname-夫人:
FreeBSD 12.0-RELEASE arm64
平台
raspberry Pi 3B
我确实在上找到了类似的问题FreeBSD 论坛从去年开始,但没有解决。
知道发生了什么事以及我该如何继续吗?