- 主题:请教一个也许是初级的问题
如果你说的进程是指我编写的函数,这个我是有控制的啊。
而且也没明白与系统调用有什么关系。
我主要是监控文件系统。
我希望的行为是:
ioctl() {
actual_operations;
existed_fs_hook2;
}
existed_fs_hook2() {
get_conf
dlopen
dlsym
exec_myfunc
...
}
我希望kernel里已经写好了这么个existed_fs_hook2,里面会读指定的配置文件,然后去装载配置文件指定的库。
不知道有没有这样的已经在kernel里的机制。
【 在 xiaoju (可爱的龙猫) 的大作中提到: 】
: 你不截获系统调用,那么进程直接自己放几个自陷指令怎么防?
--
FROM 125.34.17.*
内核里就算有这个机制,你怎么保证对方编译的时候选了呢?
【 在 Space 的大作中提到: 】
: 如果你说的进程是指我编写的函数,这个我是有控制的啊。
: 而且也没明白与系统调用有什么关系。
: 我主要是监控文件系统。
: ...................
--
FROM 27.91.71.*
可以hook系统调用,之前看过微信开源协程库源码libco,就是这么做的
--
FROM 61.144.209.*
1、ebpf
2、hook
其实如果只是截断对文件系统的访问的话,还是相对容易的,hook应该可以搞定
【 在 Space 的大作中提到: 】
: 我用了很多年Linux,但是对内核一直只有很粗浅的认识。下面这个需求,不知道有没有可能实现?
: 我需要截断对文件系统的访问,监控一些信息。这个功能是现有的,实现方式是嵌入在内核里发布。本来客户也能接受。
: 但现在客户经常需要升级内核,每升级一次,我们就需要根据他的版本,重新编译出一个版本,再让客户安装。客户很烦。
: ...................
--
FROM 116.233.22.*
客户不会自己编译的,就是下载了安装。我只能说,希望在主流的二进制发布里都有这个机制。
【 在 xiaoju (可爱的龙猫) 的大作中提到: 】
: 内核里就算有这个机制,你怎么保证对方编译的时候选了呢?
--
FROM 222.128.36.*
如果你确定客户用的一定是主流二进制发布,直接针对每个dist做个发布包就行
【 在 Space 的大作中提到: 】
: 客户不会自己编译的,就是下载了安装。我只能说,希望在主流的二进制发布里都有这个机制。
:
--
FROM 27.91.71.*
看起来bpf能实现,买本bpf之巅看看bpftrace
【 在 Space 的大作中提到: 】
: 这个东西貌似很复杂,我仔细看看,目前还没搞明白,不知道能不能。
: 谢谢!
:
--
FROM 47.251.3.*
看来所有建议都指向BPF了。我仔细学习一下。多谢各位!
--
FROM 222.128.36.*
内核都升级了,内核模块升级一下很正常,内核升级都不怕麻烦,升级个模块嫌麻烦?你可以写个脚本把这个过程自动化了。
或者看看inotify是否能实现你的监控需求,能用的话就别内核模块了。
【 在 Space 的大作中提到: 】
: 我用了很多年Linux,但是对内核一直只有很粗浅的认识。下面这个需求,不知道有没有可能实现?
: 我需要截断对文件系统的访问,监控一些信息。这个功能是现有的,实现方式是嵌入在内核里发布。本来客户也能接受。
: 但现在客户经常需要升级内核,每升级一次,我们就需要根据他的版本,重新编译出一个版本,再让客户安装。客户很烦。
: ...................
--
FROM 111.193.221.*
api hook
- 来自 水木社区APP v3.4.3
【 在 xiaoju 的大作中提到: 】
Linux的话,你阻止不了进程调用syscall啊
Windows的话因为微软不鼓励也不保证syscall的兼容性,你
- 来自 水木社区APP v3.4.3
--
FROM 106.121.65.*