Squeak.ru - шаблоны программирования

Windows 7 x64: пример msdn с низким уровнем IL не работает

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

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

«Не удалось инициализировать Alpplication должным образом (0xC0000022 -- STATUS_ACCESS_DENIED) ...". Кто-нибудь встречал такую ​​же проблему?


Ответы:


1

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

01.10.2010

2

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

Похоже, что пример MSDN не работает с указанным строка SID, так как она указывает слишком низкий уровень целостности. Из исходный код Chromium, S-1-16-1024 SID, используемый в примере, находится между 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.

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

11.09.2015
Новые материалы

API следующего поколения: gRPC n Javascript
gRPC - быстро развивающаяся технология, которая потенциально может заменить протокол HTTP. Это быстрее, чем традиционные HTTP-вызовы, потому что он отправляет данные в двоичном формате, а не в..

Ускоренный курс по жадным алгоритмам
Дай мне, дай мне, дай мне Аудитория Эта статья предназначена для инженеров, достаточно хорошо разбирающихся в программировании, структурах данных и алгоритмах. Он в основном основан на..

Изучайте Java (Урок 2: Комментарии)
Как и зачем использовать комментарии в java с примерами Введение: Комментарии — это строки текста в программе Java, которые игнорируются компилятором и используются для добавления..

Async Await в Swift: легкое управление параллелизмом
Введение в запуск асинхронного кода Асинхронный код выполняет несколько операций одновременно. Параллелизм необходим при выполнении тяжелых вычислений или сетевых запросов. Однако это может..

Очистить файлы Program .cache в Ubuntu 20.10
Очистите кеш за несколько простых шагов! GNU / Linux реализовал эффективное управление хранилищем для своих пользователей. Но заметили ли вы, что в вашей системе Linux заканчивается место,..

Использование Node.js для чтения действительно больших файлов (часть 1)
В этом сообщении в блоге есть интересный источник вдохновения. На прошлой неделе кто-то на одном из моих каналов в Slack опубликовал тестовое задание, которое он получил на должность..

Введение в градиентный спуск и обратное распространение
Введение в градиентный спуск и обратное распространение Как машинное обучение? Машинное обучение ( ML ) - это исследование компьютерных алгоритмов, которые автоматически улучшаются по..