У меня есть приложение inyector для сопоставления удаленной DLL в другой процесс. Процесс, который я пытаюсь вставить, имеет свой собственный манифест и требует прав администратора. Я пытаюсь использовать CreateProcess, так как я могу создать процесс в приостановленном состоянии, сделать свое сопоставление в удаленную память, а затем возобновить его.
Теперь, согласно MS, я могу использовать ShellExecute с глаголом runas, но это сразу начнет процесс. Существует ли какой-либо метод запроса пользователя на запуск процесса как администратора и в то же время создание процесса в приостановленном состоянии?.
Если целевой исполняемый файл имеет манифест UAC, который указывает requiresAdminstrator
вам не нужно ничего делать. Просто используйте CreateProcess()
как правило, и пусть ОС справится с возвышением для вас. Elevation будет применена к новому процессу до того, как CreateProcess()
вернет вам управление.
Вам нужно только поднять вручную, если целевой исполняемый файл НЕ имеет манифеста UAC, который вызывает повышение. В этом случае вы можете использовать что-то вроде CreateProcessElevated()
если вы не хотите использовать ShellExecute/Ex()
.