Я читал о реализации ОАКА на MSDN: http://technet.microsoft.com/en-us/magazine/2007.06.uac.aspxCreateProcessAsUser - создать процесс с другим родителем?
наткнулся этой интересная линия:
Хотя АИС технически родитель возвышенного процесса, АИС использует новую поддержку в CreateProcessAsUser API, что устанавливает идентификатор родительского процесса процесса в процесс процесса, который изначально запустил (см. рис. 13).
Вот страница MSDN для CreateProcessAsUser:
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
);
Exert говорит, что мы можем создать процесс и установить другой родитель, используя параметры в API. Я не уверен, как это сделать? Нужно ли мне копать в токен?