Windows 7 x64: пример с низким IL-процессом msdn не работает - PullRequest
4 голосов
/ 29 июня 2010

Я хочу создать процесс с низким уровнем целостности из процесса со средним уровнем целостности. Я нашел пример msdn: Разработка приложений для запуска на низком уровне целостности

Но это не работает в моей системе. Процесс создан успешно, но окно сообщения

«Не удалось правильно инициализировать приложение (0xC0000022 - STATUS_ACCESS_DENIED) ...» появился. Кто-нибудь сталкивался с такой же проблемой?

Ответы [ 2 ]

3 голосов
/ 02 октября 2010

Я тоже столкнулся с этим.SID, используемый в примере, неверен.Это должен быть "S-1-16-4096", а не "S-1-16-1024".

1 голос
/ 11 сентября 2015

Я проголосовал за ответ @ dyared, потому что он помог мне найти полный ответ. Прежде всего я должен упомянуть, что я не специализируюсь в этом вопросе, и это лишь краткое изложение моих выводов.

Кажется, что пример MSDN не работает с указанной строкой SID , поскольку он указывает на слишком низкий уровень целостности. Исходя из исходного кода Chromium , SID S-1-16-1024, используемый в примере, находится в диапазоне от INTEGRITY_LEVEL_BELOW_LOW до INTEGRITY_LEVEL_UNTRUSTED:

const wchar_t* GetIntegrityLevelString(IntegrityLevel integrity_level) {
  switch (integrity_level) {
    case INTEGRITY_LEVEL_SYSTEM:
      return L"S-1-16-16384";
    case INTEGRITY_LEVEL_HIGH:
      return L"S-1-16-12288";
    case INTEGRITY_LEVEL_MEDIUM:
      return L"S-1-16-8192";
    case INTEGRITY_LEVEL_MEDIUM_LOW:
      return L"S-1-16-6144";
    case INTEGRITY_LEVEL_LOW:
      return L"S-1-16-4096";
    case INTEGRITY_LEVEL_BELOW_LOW:
      return L"S-1-16-2048";
    case INTEGRITY_LEVEL_UNTRUSTED:
      return L"S-1-16-0";
    case INTEGRITY_LEVEL_LAST:
      return NULL;
  }

Более того, похоже, что SID S-1-16-4096, предложенный @dyared, также используется при запуске Internet Explorer в защищенном режиме, как это было заявлено в Создание процесса в защищенном режиме в Windows Vista , статья о Блоги MSDN.

Однако то, что этого примера было достаточно, не означает, что он достаточно строг для каждой ситуации, и выбор соответствующего уровня целостности должен быть сделан с пониманием его последствий.

...