一、demo编写
1. 基本步骤
-
确定hook点,这一步在原理解析中有分析,主要是根据
sys_call
,确定hook调用点 -
按照自己的逻辑结构将hook函数实现,函数名可以不一样(我这里是实现的
inode_create
),可以根据想要实现的hook进行编写int huhu_inode_create (struct inode *dir, struct dentry *dentry, umode_t mode) { printk ("[+huhu] call [inode_create] by pid: %d\n", get_current()->pid) ; return 0 ; }
-
将实现了的hook函数,添加到
security_hook_list
中static struct security_hook_list huhu_hooks[] = { LSM_HOOK_INIT(inode_create,huhu_inode_create), //3. add to security_hook_list }; void __init huhu_add_hooks(void) { pr_info("Demo: becoming mindful.\n"); //print relevant mesg, cat by dmesg | grep huhu