创建新进程,就三个函数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

上一篇:Go:创建新进程(os.StartProcess源码解读)


下一篇:Delphi 使用CreateProcess创建进程并弹出进程PID值 (转)