我在 MSDN 上阅读了有关 UAC 的实施: http ://technet.microsoft.com/en-us/magazine/2007.06.uac.aspx
偶然发现了这条有趣的路线:
尽管 AIS 在技术上是提升进程的父进程,但 AIS 使用 CreateProcessAsUser API 中的新支持,将进程的父进程 ID 设置为最初启动它的进程的 ID(参见图 13)。
这是 CreateProcessAsUser 的 MSDN 页面:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682429(v=vs.85).aspx
BOOL WINAPI CreateProcessAsUser(
_In_opt_ HANDLE hToken,
_In_opt_ LPCTSTR lpApplicationName,
_Inout_opt_ LPTSTR lpCommandLine,
_In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes,
_In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
_In_ BOOL bInheritHandles,
_In_ DWORD dwCreationFlags,
_In_opt_ LPVOID lpEnvironment,
_In_opt_ LPCTSTR lpCurrentDirectory,
_In_ LPSTARTUPINFO lpStartupInfo,
_Out_ LPPROCESS_INFORMATION lpProcessInformation
);
应用程序说我们可以通过使用 API 中的选项创建一个进程并设置不同的父进程。我不知道该怎么做?我需要挖掘令牌吗?