xtfpg 发表于 2016-7-21 18:29:26

ring0 修改进程命令行参数

需求:在驱动层去修改进程的命令行参数

我的想法:在驱动层设置 PsSetCreateProcessNotifyRoutineEx或者PsSetCreateProcessNotifyRoutine这个回调,
               然后在回调里通过 EPROCESS得到PEB,然后修改 PEB->ProcessParameters->CommandLine 这个值


问题:
      1.我的想法有没有问题,在这个地方修改这个值,如果我添加的字符串超过它原本的字符串,没有问题
      2.各位大神,还没有其它更好的方法。

Tesla.Angela 发表于 2016-7-21 19:39:14

1、这个时候PEB似乎还没有初始化好,你拿不到什么数据的。
2、除了HOOK的方式,似乎暂时没有什么标准方法实现修改进程命令行参数。
3、如果长度比原来的长,拿你直接重新分配个内存就行了,这不是啥大问题。1、2已被证伪。参考1171320344的回复。

1171320344 发表于 2016-7-21 19:53:13

哈哈,TA大牛终于有说错的时候啦,其实这两个回调都可以改commandline的,ex貌似不支持<=xp


DbgPrint("--->%wZ\r\n", &peb->ProcessParameters->CommandLine);

Tesla.Angela 发表于 2016-7-24 02:16:33

1171320344 发表于 2016-7-21 19:53
哈哈,TA大牛终于有说错的时候啦,其实这两个回调都可以改commandline的,ex貌似不支持ProcessParameters->Com ...
PS_CREATE_NOTIFY_INFO的commandline的类型是PCUNICODE_STRING,知道为啥带个C吗?
此外,改COMMANDLINE不难,难在让COMMANDLINE生效懂么?比如【notepad A.TXT】修改COMMANDLINE为【notepad B.TXT】,那么要在NOTEPAD.EXE运行的时候,打开的是B.TXT而不是A.TXT。我当时做这个测试是没成功的。
如果不服,那就请1171320344大牛直接放一份在createprocessnotify(ex)里修改COMMANDLINE的代码?放出来我给你加高亮加精华和加100水晶币。
PS:在本站,“大牛”是骂人的词语,以后请勿使用。

1171320344 发表于 2016-7-24 17:50:50

Tesla.Angela 发表于 2016-7-24 02:16
PS_CREATE_NOTIFY_INFO的commandline的类型是PCUNICODE_STRING,知道为啥带个C吗?
此外,改COMMANDLINE不 ...受教了

http://www.m5home.com/bbs/thread-8855-1-1.html 这是小弟的帖子,哪里有不足的地方,望TA指出来,说实话,小弟从事内核这块不到一年,经验不足,前辈们多多包涵

xtfpg 发表于 2016-8-10 17:11:05

感谢各位人才
页: [1]
查看完整版本: ring0 修改进程命令行参数