首页
社区
课程
招聘
Hook CreateProcessInternalW的一个奇怪问题
发表于: 2013-9-9 20:01 6294

Hook CreateProcessInternalW的一个奇怪问题

2013-9-9 20:01
6294
BOOL Fake_CreateProcessInternalW(
							   HANDLE hToken,
							   LPCWSTR lpApplicationName,
							   LPWSTR lpCommandLine,
							   LPSECURITY_ATTRIBUTES lpProcessAttributes,
							   LPSECURITY_ATTRIBUTES lpThreadAttributes,
							   BOOL bInheritHandles,
							   DWORD dwCreationFlags,
							   LPVOID lpEnvironment,
							   LPCWSTR lpCurrentDirectory,
							   LPSTARTUPINFOW lpStartupInfo,
							   LPPROCESS_INFORMATION lpProcessInformation,
							   PHANDLE hNewToken)
{
	BOOL bRet = FALSE;
	STARTUPINFOW MyStartupInfo = {0};
	memcpy(&MyStartupInfo,lpStartupInfo,lpStartupInfo->cb);

	bRet = DEF_CALL_ORIGINAL_FUNCTION(CreateProcessInternalW)(
		hToken,
		lpApplicationName,
		lpCommandLine,
		lpProcessAttributes,
		lpThreadAttributes,
		bInheritHandles,
		dwCreationFlags,
		lpEnvironment,
		lpCurrentDirectory,
		&MyStartupInfo,
		lpProcessInformation,
		hNewToken);

	return bRet;
}


什么都没做,就拷贝了下参数,然后调用拷贝后的参数,提示MyStartupInfo附近栈溢出

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

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
memcpy(&MyStartupInfo,lpStartupInfo,lpStartupInfo->cb);
问题出在这里,cb这个成员现在是未知的,导致了越界的出现。让它等于sizeof(startupInfo结构体),你在试试
2013-9-10 10:17
0
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
2楼正解
2013-9-10 11:44
0
游客
登录 | 注册 方可回帖
返回
//