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

Hook CreateProcessInternalW的一个奇怪问题

2013-9-9 20:01
6293
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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附近栈溢出

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

收藏
点赞
支持
分享
最新回复 (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
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册
//