kernel-module - 如何擦除内核模块变量中的数据?
问题描述
我有一个内核模块,它检查请求的 IP 地址,如果请求包含错误数据(垃圾邮件关键字),则将其添加到“黑名单”变量中。
我申报黑名单的方式如下:
#define blacklist (uint32_t[3]) { \
2071690107, \
168430090, \
4294967295 \
}
我做了一些初步测试到达这一步(过滤 IPv4、printk 日志),并且必须已经阻止了我需要测试的请求之一的 IP 地址。
我这样说是因为当我执行 make clean、make 并重新插入我的模块时,我会自动看到 IP 地址被阻止。
应该发生的是数据打印首先显示一个垃圾邮件词,然后它阻止 IP 地址,然后它将打印它已经在任何后续请求中被阻止(我知道稍后会跟进)。
Mar 16 18:43:33 deadsupra-VirtualBox kernel: [36594.961054] Module insertion completed successfully!
Mar 16 18:43:46 deadsupra-VirtualBox kernel: [36607.186539] ip checking: 127.0.0.1
Mar 16 18:43:46 deadsupra-VirtualBox kernel: [36607.186541] ip is already blacklisted 127.0.0.1
Mar 16 18:43:46 deadsupra-VirtualBox kernel: [36607.186546] ip checking: 127.0.0.1
Mar 16 18:43:46 deadsupra-VirtualBox kernel: [36607.186547] ip is already blacklisted 127.0.0.1
Mar 16 18:43:51 deadsupra-VirtualBox kernel: [36612.190103] ip checking: 127.0.0.1
Mar 16 18:43:51 deadsupra-VirtualBox kernel: [36612.190108] ip is already blacklisted 127.0.0.1
Mar 16 18:43:51 deadsupra-VirtualBox kernel: [36612.190119] ip checking: 127.0.0.1
Mar 16 18:43:51 deadsupra-VirtualBox kernel: [36612.190121] ip is already blacklisted 127.0.0.1
我的make文件如下:
obj-m += wander.o
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
all:
make -C $(KERNELDIR) -Wno-declaration-after-statement M=$(PWD) modules
clean:
make -C $(KERNELDIR) M=$(PWD) clean
insert:
-sudo rmmod wander
sudo dmesg -C
sudo insmod wander.ko
dmesg
test:
curl "http://www1.udel.edu/registrar/graduation-diplomas/diplomas.html" | grep -i -o -P '.{0,10}university.diploma.{0,20}'
log:
cat /var/log/kern.log
我没有正确清理我的项目空间吗?我想每次都刷新我的测试场景,并忘记以前在重建源代码时阻止的任何 IP 地址。
我在想,当我清理模块时,它会删除它,但出于某种原因必须保留数据。
解决方案
推荐阅读
- python-3.x - 如何将包含单引号和双引号值的 Python 列表转换为所有双引号值
- sql-server - SSISDB 说包正在运行,但它没有
- python - pandas - drop_duplicates 没有按预期工作
- acumatica - 为什么我的覆盖字段在 CRActivityMaint 上没有生效
- ruby-on-rails - ArgumentError:无效的元素数(3 for 1..2)rake aborted
- meteor - Meteor swiper 滑块需要时间来加载图像和视频?
- windows - 如何从 windows make 文件运行命令和检查退出状态
- javascript - 如何在其赋值表达式中重用目标的值?
- javascript - 图像地图区域元素上的 Onclick 事件
- python - Azure ML Studio 环境中的 Python 自定义模型错误 0085,在本地环境中运行良好