首页
社区
课程
招聘
[求助]想hook程序的子进程创建,怎么处理WinExec这类函数
发表于: 2016-10-23 14:52 5318

[求助]想hook程序的子进程创建,怎么处理WinExec这类函数

2016-10-23 14:52
5318
我想hook一个程序的进程创建,并得到子进程的信息,现在我已经hook了CreateProcessA/W,CreateProcessAsUser等函数,但是对于WinExec和ShellExecute这两个函数好像不能返回子进程的信息,所以想咨询下各位,有没有其他的办法把WinExec和ShellExecute这两个函数创建的子进程也捕获到?我是在ring 3下做的,ring 0好像需要驱动支持,对我来说不太方便。

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 101
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mty
2
我用apimonitor跑了一下程序,发现WinExec调用了NtCreateUserProcess,

调用堆栈里有CreateProcessA,但是Api监控里没有捕获到,看样子不是直接调用CreateProcessA,而是从中间执行的?
上传的附件:
2016-10-23 15:07
0
雪    币: 4928
活跃值: (967)
能力值: ( LV9,RANK:175 )
在线值:
发帖
回帖
粉丝
3
WinExec会调用CreateProcessA,这个你跟一下就知道了。
R3还有这几个更底层点的几个选择
777DEB0C ZwCreateProcessEx
777DEB20 ZwCreateProcess
777DE9E0 ZwCreateUserProcess
2016-10-23 19:15
0
雪    币: 12
活跃值: (418)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
Hook ntdll.dll里面的ZwCreateSection 进程创建必须走这个

CreateProcess流程太多

大概是
st=NtOpenFile(...);
st=NtCreateSection(...);
st=NtCreateProcessEx(...);
st=NtCreateThread(...);
....
2016-10-24 09:42
0
雪    币: 522
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
ZwCreateSection  不好判断  且系统调用非常频繁    并不是一个合适的点
2016-10-24 13:23
0
雪    币: 730
活跃值: (3385)
能力值: ( LV7,RANK:140 )
在线值:
发帖
回帖
粉丝
6
hook WinExec和ShellExecute,跳掉这两个函数实现,在hook代码中获取相关参数自己用CreateProcess创建进程 :)
2016-10-24 20:19
0
游客
登录 | 注册 方可回帖
返回
//