首页
社区
课程
招聘
[求助]在FSD中如何判断一个文件是否来自网络
发表于: 2010-12-3 09:24 6300

[求助]在FSD中如何判断一个文件是否来自网络

2010-12-3 09:24
6300
如题,我挂了NTFS的派发表,我想知道怎么在DispatchCreate例程中来判断一个文件是不是来自网络,
先谢了

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 3116
活跃值: (1269)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
2
BS你,,,,,,,,,,,,,,,,,,,哈。fileobject里面好像有标志位
2010-12-3 10:49
0
雪    币: 412
活跃值: (30)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
3
给个不靠普的。
BOOLEAN
IsFromNetAccess (
	__in PFLT_IO_PARAMETER_BLOCK iopb
    )
{
	NTSTATUS	ntStatus;
	PACCESS_TOKEN pToken=NULL;
	PTOKEN_SOURCE pTokenSrc=NULL;
	PSECURITY_SUBJECT_CONTEXT secSubCtx;
	BOOLEAN		ret=FALSE;

	secSubCtx=&(iopb->Parameters.Create.SecurityContext->AccessState->SubjectSecurityContext);

	do
	{
		if(secSubCtx->ClientToken!=NULL || secSubCtx->PrimaryToken!=NULL)
		{
			pToken=SeQuerySubjectContextToken(secSubCtx);
		}

		if(pToken==NULL)
			break;

		ntStatus=SeQueryInformationToken(pToken,TokenSource,&pTokenSrc);
		if(NT_SUCCESS(ntStatus))
		{
			pTokenSrc->SourceName[TOKEN_SOURCE_LENGTH-1]=0x00;
			if(_stricmp(pTokenSrc->SourceName,"NtLmSsp")==0)
			{
				ret=TRUE;
			}
		}
		else
		{
			DbgPrint("SeQueryInformationToken  Failed!!!\n");
		}
	}while(0);

	if(pTokenSrc!=NULL)
		ExFreePool(pTokenSrc);

	return ret;
}
2010-12-3 20:27
0
雪    币: 248
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼上威武,不过我是HOOK FSD,在这个分派例程里来处理,我想问下那个参数IOPB是什么呀?
2010-12-3 23:14
0
雪    币: 507
活跃值: (26)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
骷髅王大哥威武~
2010-12-3 23:21
0
雪    币: 412
活跃值: (30)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
6
这是MiniFilter里面的结构,注意这个
Create.SecurityContext->AccessState->SubjectSecurityContext
2010-12-4 01:56
0
雪    币: 248
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
THANK U,这个和IO_STACK_LOCATION里的Parameters.Create都是同一个结构吧
2010-12-6 09:14
0
游客
登录 | 注册 方可回帖
返回
//