首页
社区
课程
招聘
[旧帖] [求助]ZwOpenKey一直失败 0.00雪花
发表于: 2012-7-10 15:43 1355

[旧帖] [求助]ZwOpenKey一直失败 0.00雪花

2012-7-10 15:43
1355
我用的是SSDT进行注册表操作的Hook,现在是对ZwOpenKey进行勾取。目的是截取原先欲访问的路径,替换成另外一个路径。代码如下:
NTSTATUS HookZwOpenKey
(
	OUT PHANDLE  KeyHandle,
	IN ACCESS_MASK	DesiredAccess,
	IN POBJECT_ATTRIBUTES  ObjectAttributes
)
{
	char fullPath[1024] = {0};
	char hookPath[1024] = {0};
	UINT find = 0;
	ANSI_STRING ansi_path;
	int i,j,num=0;
	NTSTATUS status;
	char tmp[1024] = {0};
	PHANDLE handle;
	
	
	if(NULL != ObjectAttributes->RootDirectory)
	{
		GetFullName(ObjectAttributes->RootDirectory,fullPath);
		strcat(fullPath,"\\");
		RtlUnicodeStringToAnsiString(&ansi_path,ObjectAttributes->ObjectName,TRUE);
		strcat(fullPath,ansi_path.Buffer);
	}
	else
	{
		RtlUnicodeStringToAnsiString(&ansi_path,ObjectAttributes->ObjectName,TRUE);
		strcpy(fullPath,ansi_path.Buffer);
	}
	
	//如果匹配,开始重定向。TRUE表示不区分大小写
	if(1 == ShouldBeReDirected(fullPath,REDIRECT_TYPE_OPEN))
	{
		OBJECT_ATTRIBUTES objAttr;
		ANSI_STRING tmpAnsi;
		UNICODE_STRING ObjectName;
#if DBG
		_asm int 3
#endif

		//创建文件名
		RtlInitUnicodeString(&ObjectName,L"\\Registry\\Machine\\SOFTWARE\\Program Groups");
		//初始化objectAttributes
		InitializeObjectAttributes(&objAttr,&ObjectName,OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE,NULL,NULL);
		
				
		status = OldZwOpenKey(handle,KEY_ALL_ACCESS,&objAttr);
		if(NT_SUCCESS(status))
		{
			DbgPrint("After redirect ZwOpenKey,status=%ld",status);
		}
		//status = OldZwOpenKey(KeyHandle,DesiredAccess,ObjectAttributes);
	
		return status;
		
	}

	status = OldZwOpenKey(KeyHandle,DesiredAccess,ObjectAttributes);
	return status;
}



OldZwOpenKey是我之前保存的ZwOpenKey.
status = OldZwOpenKey(handle,KEY_ALL_ACCESS,&objAttr);//这一句一直出错,status是一个很大的负数。

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 67
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
新人,对驱动很感兴趣。望指教
2012-7-10 16:18
0
雪    币: 338
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这种问题,可能的原因太多:不好说
2012-7-10 17:36
0
雪    币: 67
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
郁闷。status的结果是STATUS_ACCESS_VIOLATION
呼唤高手啊!!!!!!!!!!!
2012-7-11 10:32
0
雪    币: 67
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这个问题头都大了。还是搞不定
2012-7-12 16:09
0
游客
登录 | 注册 方可回帖
返回
//