首页
社区
课程
招聘
[原创]QQ电脑管家逆向系列之PsSetCreateProcessNotifyRoutine(1)
发表于: 2012-1-18 18:17 18582

[原创]QQ电脑管家逆向系列之PsSetCreateProcessNotifyRoutine(1)

2012-1-18 18:17
18582

下午一时兴起,打算研究下QQ电脑管家的一系列功能,于是先从PsSetCreateProcessNofityRoutine下手了,打算逆成一个系列,希望大家多多支持。不喜勿喷。

由于下午时间仓促,NofityRoutine仅逆了一部分,当作(1)先分享给大家,总体流程还是比较清楚了的。

用XT查看内核--->系统回调,发现有两个CreateProcess回调,分别在TCSafeBox.sys和TCKsp.sys中,这里分析的是TCSafeBox.sys。

DriverEntry里调用PsSetCreateProcessNotifyRoutine注册NotifyRoutine,下面是NotifyRoutine的总体流程。

void __stdcall NotifyRoutine(HANDLE ParentId, HANDLE ProcessId, BOOLEAN Create)
{
	if(KeGetCurrentIrql() > 0)
	{
		return;
	}
	if(FALSE == Create)
	{
		sub_144DE(ProcessId, ParentId);
	}
	else
	{
		if(0 == dword_15300)
		{
			return;
		}
		else
		{
			sub_143C2(ProcessId, ParentId);
		}
	}
}
void sub_143C2(HANDLE ProcessId, HANDLE ParentId)
{
	char buf[0x314];
	memset(buf, 0, 0x314);
	int a, b;
	a = b = 0;
	*(HANDLE *)buf = ProcessId;
	if(!sub_12326(ProcessId, buf + 8,0x103))
	{
		return;
	}
}

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 6
支持
分享
最新回复 (23)
雪    币: 107
活跃值: (404)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
又有帖子要加精华了...呵呵支持一个....\

你别逼着管家用VMP呀..
2012-1-18 18:26
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
3
我是打酱油的
2012-1-18 18:28
0
雪    币: 27
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
来膜拜下 ~~
2012-1-18 18:41
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
5
这不是逆,这是F5~~
2012-1-18 18:51
0
雪    币: 220
活跃值: (726)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
V大的意思是让LZ直接发工程代码
2012-1-18 20:09
0
雪    币: 57
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
真的是不懂  还待学习
2012-1-19 00:13
0
雪    币: 128
活跃值: (27)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
8
比F5漂亮一些吧,算逆吧。。
高手难道都要把vm还原出来的那种才算得上逆吗
2012-1-19 00:18
0
雪    币: 68
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
omg, 支持一个
2012-1-19 00:24
0
雪    币: 20
活跃值: (99)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
10
不懂~~~学习~~~~
2012-1-19 01:12
0
雪    币: 1163
活跃值: (137)
能力值: ( LV12,RANK:230 )
在线值:
发帖
回帖
粉丝
11
鼓励新人发帖,v校的标准自然是不一样了,呵呵。
初学者的话就当互相交流,还是有意义的。

期待lz的后续文章。
2012-1-19 10:11
0
雪    币: 284
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
这。。。真的,不懂。啊
2012-1-19 10:36
0
雪    币: 75
活跃值: (738)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
13
还以为有什么判断逻辑在里面
2012-1-19 12:25
0
雪    币: 1015
活跃值: (235)
能力值: ( LV12,RANK:440 )
在线值:
发帖
回帖
粉丝
14
期待后续文章!
2012-1-19 12:26
0
雪    币: 2331
活跃值: (2220)
能力值: (RANK:400 )
在线值:
发帖
回帖
粉丝
15
ObjAttr.ObjectName = &DestString;
ObjAttr.Length = sizeof(ObjectAttributes);
ObjAttr.RootDirectory = NULL;
ObjAttr.Attributes = 0x240;
ObjAttr.SecurityDescriptor = NULL;
ObjAttr.SecurityQualityOfService = NULL;

老V说的一点没错,确实只是F5...
2012-1-19 13:04
0
雪    币: 12
活跃值: (773)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
收到这个callback的时候,进程不是已经创建了嘛?又不能挂起进程?进程防御需要这个吗?求解释
2012-1-19 13:20
0
雪    币: 639
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
XT是SOFTICE的命令吗?
2012-1-19 13:34
0
雪    币: 40
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
F5+吧。。。。。。。。。。。。。。。。
2012-1-19 14:15
0
雪    币: 544
活跃值: (264)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
19
XueTr

F5出来的没意思。自己把整个流程弄明白才有意义。
2012-1-26 18:28
0
雪    币: 171
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
这不是逆,这是F5~~
这句话霸气啊~
2012-1-29 21:20
0
雪    币: 234
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
支持一下,期待后续文章
2012-2-2 15:57
0
雪    币: 1579
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
F5是什么意思啊,请前辈们指教。
2012-2-4 13:28
0
雪    币: 183
活跃值: (55)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
23
适合新手的帖子!
2012-2-4 18:46
0
雪    币: 2331
活跃值: (2220)
能力值: (RANK:400 )
在线值:
发帖
回帖
粉丝
24
进程创建的时候,会调用callback函数,而callback函数是同步执行的。

自己跟下wrk的代码,或者自己写程序实现下,可以加深记忆。
2012-2-27 15:41
0
游客
登录 | 注册 方可回帖
返回
//