0x02 嵌入式---劫持系统调用函数进行文件隐藏

本文介绍如何在内核内存中找到并替换系统调用表中的函数地址,以实现对特定系统调用如mkdir的自定义行为。通过关闭内存保护,修改sys_call_table中的函数指针,并重新开启内存保护,完成系统调用的劫持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 寻找内核内存中系统调用表的内存地址sys_call_table ,调换该内存中某个函数地址
  2. 通过部分系统文件 :more /boot/System.map-4.15.0-66-generic (4.15.0-66-generic是内核版本,可以通过uname -r查看)
	asmlinkage long (*real_mkdir)(const char __user *pathname,umode_t mode);
	asmlinkage long myself_mkdir(const char __user *pathname, umode_t mode)
	{
		....
	}
	write_cr0(read_cr0() & (~0x10000)); //关闭内存保护
	real_mkdir = (void *)sys_call_table[__NR_mkdir]; //real_mkdir 原mkdir调用的系统调用函数,提前保存原函数。
	sys_call_table[__NR_mkdir] = myself_mkdir; //将自定义的mkdir函数进行赋值给sys_call_table[__NR_mkdir] 。
	write_cr0(read_cr0() | 0x10000); //开启内存保护
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值