首页
社区
课程
招聘
[求助]内核中拦截进程传入的commandline
发表于: 2014-3-28 22:05 6725

[求助]内核中拦截进程传入的commandline

2014-3-28 22:05
6725
只看XP下的

commandline存在_PEB这个结构里面
_PEB->ProcessParameters->CommandLine

本来想在hook ZwCreateProcessEx
拦截的 发现这个函数只初始化了PEB而已,并没有初始化ProcessParameters
去看了一下ReactOS
发现是这样的
CreateProcessW -> CreateProcessInternalW -> NtCreateProcess ->BasePushProcessParameters(RtlCreateProcessParameters) ->BasepCreateFirstThread(NtCreateThread) ->NtResumeThread
到了BasePushProcessParameters才把用户的参数写入PEB

最后用PsSetCreateProcessNotifyRoutine调试发现也是 PEB 只初始化了一部分
我需要的并没有初始化

难道要勾住NtResumeThread吗?这个好像不太现实吧。进程无时无刻在创建线程呢。。。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 19
活跃值: (1086)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
测试了一下 勾住NtResumeThread 就算改了commandline 也没有用
2014-3-29 00:22
0
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
到PsSetCreateProcessNotifyRoutine的时候CommandLine已经初始化了啊?你还要啥
2014-3-29 10:20
0
雪    币: 544
活跃值: (264)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
4
XP里面,父进程在kernel32!BasePushProcessParameters函数中,通过ntdll!NtWriteVirtualMemory写到子进程里面去的

ReactOS跟实际的windows相差很大,还是用IDA去看吧。
2014-3-29 14:00
0
雪    币: 19
活跃值: (1086)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我试了好几次这个回调了 Commandline还没初始化 ProcessParameters是初始化了
里面的Commandline没呢
2014-3-29 15:21
0
雪    币: 56
活跃值: (515)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
PsSetCreateProcessNotifyRoutine获取PEB
2014-10-23 16:28
0
雪    币: 155
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
你说的没初始化可能是没normalize,这个自己做下就好了。
2014-10-23 17:13
0
雪    币: 24
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
靓仔厉害。。
2014-10-24 08:45
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
可以
2014-12-3 12:55
0
游客
登录 | 注册 方可回帖
返回
//