Эскалация программы из сессии 0

Моя программа использует DXGI API для взаимодействия с выходами и адаптерами DXGI.

Я разрабатываю его, используя в основном инструменты командной строки, поскольку мне пока не нужен GUI.

Я также обращаюсь к своему экземпляру PowerShell через Bitvise SSH Server — каждый раз, когда я запускаю скомпилированную программу.exe через этот экземпляр PowerShell, насколько я могу судить, это означает, что моя программа выполняется в сеансе 0, а это означает, что у меня есть доступ только подмножество функциональности DXGI (см. Используйте Direct3D в процессах сеанса 0).

Есть ли способ, которым я могу как-то взломать это требование? Есть ли флаг, который я могу передать программе .exe, которая каким-то образом выскакивает из сессии 0?

1

Решение

Если не через WinAPI и если вы можете использовать и запустить дополнительный exe-файл для запуска вашей программы.exe, я думаю, вы можете попробовать использовать утилиту psexec: http://technet.microsoft.com/en-us/sysinternals/bb897553.

Я думаю, что есть похожие утилиты вокруг.

РЕДАКТИРОВАТЬ:
Вы также можете использовать psexec для запуска процессов на локальном компьютере, см. Ссылку на аргумент «computer»:

компьютер Направьте PsExec для запуска приложения на указанном компьютере или компьютерах. Если вы опустите имя компьютера, PsExec запустит приложение в локальной системе. и если вы введете имя компьютера «\ *», PsExec запустит приложения на всех компьютерах в текущем домене.

Другой РЕДАКТИРОВАТЬ
Я смог запустить notepad.exe в моем сеансе, имитируя то, что вы могли иметь:

psexec -i 0 psexec -s -i 1 C:\windows\system32\Notepad.exe

В этой командной строке запускается psexec для запуска в сеансе 0 (под системной учетной записью), а затем этот новый psexec вызывает notepad.exe для отображения в моем сеансе (сеанс 1). И это отчасти работает.
Конечно, вам понадобятся права администратора для запуска этих команд.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]