创建新进程,就三个函数CreateProcessAsUser CreateProcessWithLogonW CreateProcessWithTokenW(附网友的流程)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建新进程,就三个函数CreateProcessAsUser CreateProcessWithLogonW CreateProcessWithTokenW(附网友的流程)相关的知识,希望对你有一定的参考价值。

CreateProcessAsUser 怎么会还需要密码呢~~~

先WTSGetActiveConsoleSessionId 得到当前的处理激活状态的SessionId

OpenProcessToken 得到服务进程的TOKEN

DuplicateTokenEx 复制一个TOKEN

SetTokenInformation 使用这个函数把复制到的TOKEN的会话ID设置为上面得到的处于激活状态的SessionId

CreateProcessAsUser 使用刚才设置好SessionId的SessionId创建一个用户进程,此进程就是以登录的用户创建的啦,

 

------------------------------------------------------------------------------------------------

可以试下这样,用CreateRemoteThread()在explorer.exe进程创建远程线程执行CreateProcess()

------------------------------------------------------------------------------------------------

CreateProcessWithToken可行,但是xp不支持这个函数

另外system权限下用这个函数可以使创建的进程用户变成administrator,但是不能session id仍然是system的

调用了SetTokenInformation好像也不起作用

 

http://bbs.csdn.net/topics/390248917

以上是关于创建新进程,就三个函数CreateProcessAsUser CreateProcessWithLogonW CreateProcessWithTokenW(附网友的流程)的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Windows 7 中的命名管道内创建进程

system()exec()fork()三个与进程有关的函数的比较

winApi使用c++创建进程

Linux 进程创建二(execve)

创建过程不起作用

实验总结 第六周 进程