首页
社区
课程
招聘
[求助]HOOK ZWCreateprocess 如何获得启动参数?
发表于: 2013-7-12 09:48 6942

[求助]HOOK ZWCreateprocess 如何获得启动参数?

2013-7-12 09:48
6942
如题,我在学习驱动编程,在学习HOOK ZWCreateprocess 时有个问题,ring3的createpprocess和ring0的ZWCreateprocess 参数并不对应,HOOK 了ZWCreateprocess 后参数里面好像并没有进程启动时的commandline这个参数,如果我想得到这个参数,我该怎么做呢?
比如,一个程序启动参数为 a.exe -k -v -t 100,我已经hook了ZWCreateprocess ,我现在想得到 -k -v -t 100些参数。该怎么说实现呢?我想要的是在ring0实现,ring3全局钩子就算了。

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

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 601
活跃值: (256)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
2
返回的时候,如果成功,从peb的ProcessParameters域里取
2013-7-12 12:23
0
雪    币: 141
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
首先感谢您的指点。是这样的,我就是想实现个简单的类似主动防御一样的小工具,拦截进程启动,通知用户,由用户来决定是否放行,问题是我现在HOOK了ZWCreateprocess,在用户决定是否放行之前进程还没有创建完成,也就不会有返回值,也不会有相应的PEB等结构,我想在通知用户有进程启动时连同启动目录和启动参数一块通知给用户。
在进程还没有启动完成时,有没有别的方法获取启动参数呢。
2013-7-12 14:55
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
同学可以把进程先挂起CREATE_SUSPENDED,执行结束检测PEB中的参.

typedef struct _PROCESS_BASIC_INFORMATION {
    PVOID Reserved1;
    PPEB PebBaseAddress;
    PVOID Reserved2[2];
    ULONG_PTR UniqueProcessId;
    PVOID Reserved3;
} PROCESS_BASIC_INFORMATION;

中得到.这样就可以得到命令行了.然后在判断是否需要恢复.
2013-7-16 10:41
0
游客
登录 | 注册 方可回帖
返回
//