首页
社区
课程
招聘
[求助]应用层如何获取当前进程的task_struct
发表于: 2017-7-31 16:32 3415

[求助]应用层如何获取当前进程的task_struct

2017-7-31 16:32
3415

看了小白君的代码

int get_current_task()
{
	int i_ret;
	int i;
	i_ret =  *(int *)(((unsigned int)&i & 0xFFFFE000) + 0xC);
	return i_ret;
}

但是为啥返回值是0呢?


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 60
活跃值: (524)
能力值: ( LV5,RANK:65 )
在线值:
发帖
回帖
粉丝
2
求解
2017-7-31 17:32
0
雪    币: 18
活跃值: (721)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
因为应用层获取不到。。这是内核结构体。。
2017-7-31 18:05
0
雪    币: 60
活跃值: (524)
能力值: ( LV5,RANK:65 )
在线值:
发帖
回帖
粉丝
4
ele7enxxh 因为应用层获取不到。。这是内核结构体。。
但是小白君这个帖子http://bbs.pediy.com/thread-210503.htm
有这段代码,如果是内核层的程序是不能用printf的,只能用printk,但他的代码里还有printf,所以我有点懵,到底是怎么回事。
2017-8-1 08:48
0
雪    币: 148
活跃值: (298)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这段代码是通过漏洞在内核里面执行
2017-8-2 09:41
0
雪    币: 53
活跃值: (321)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
task_struct是由内核线程栈顶的thread_info结构体间接获取的,thread_info必须得在kernel上下文中执行时,通过 { sp[或局部变量] & ~(内核线程栈大小-1) } 计算才是有效的。


2017-8-2 10:12
0
雪    币: 416
活跃值: (122)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
7
弄明白    操作系统的    模式切换。。。。在调用svc  指令后,,  程序已经  进入到特权模式。。这个时候的sp  和  你在应用程序状态下的sp    其实不一样了。。。
2017-12-29 12:28
0
游客
登录 | 注册 方可回帖
返回