Отключить программно-аппаратный механизм защиты процессора от переполнения буфера биоса

Обновлено: 22.11.2024

За последние годы стало намного сложнее управлять компьютерной безопасностью, и это связано с тем, что злоумышленники постоянно изобретают новые и более эффективные способы атаки на наши системы. По мере того, как злоумышленники становятся все более изощренными, мы, как профессионалы в области безопасности, должны гарантировать, что они не имеют свободного контроля над системами, для защиты которых мы наняты. Вектор атаки, который многие забывают учитывать, — это сам процесс загрузки, который почти полностью контролируется BIOS.

BIOS — это привилегированная часть программного обеспечения, которое обычно игнорируется повседневными пользователями, и поэтому они, как правило, не в состоянии понять его важность для наших компьютеров. Базовая система ввода-вывода была впервые изобретена Гэри Килдаллом для использования в его операционной системе CP/M, и это стало тем, что мы теперь знаем как обычную систему BIOS. BIOS появился в IBM-совместимых ПК примерно в 1975 году и широко использовался в операционной системе CP/M. Позже это использовалось в системах MSDOS, где оно было известно как DOS BIOS. Эти системы отвечали только за базовую предварительную инициализацию оборудования перед передачей управления загрузчику. Это было нормально тридцать лет назад, когда программное обеспечение было проще, а атаки не были очень распространены, поэтому сам BIOS не был разработан с учетом безопасности. Однако в современном мире это уже не так. В системе безопасности BIOS отсутствуют некоторые функции, делающие ее уязвимой для внешних атак.

Вот некоторые известные атаки, проведенные против систем BIOS:

Chernobyl Attack (1998 г.) — также известная как CIH или Spacefiller, была первой крупной атакой на системы BIOS. Этот вирус устанавливается в память Windows, перехватывает вызовы доступа к файлам и заражает все запущенные в данный момент программы. Затем вирус пытается прошить прошивку BIOS, заполнив ее нулями. Другая полезная нагрузка заражает основную загрузочную запись (MBR), заполняя первый мегабайт жесткого диска нулями.

Mebromi (2012 г.) — состоит из руткита BIOS, руткита MBR, троянского загрузчика и заразителя PE. Этот троянец удаляет определенный параметр реестра и проверяет производителя BIOS. Если это Award BIOS, он затем заражает ПЗУ BIOS и, в свою очередь, заражает главную загрузочную запись (MBR) и изменяет ее, позволяя запускать зараженную программу при каждом запуске операционной системы.

Мы пытаемся предотвратить такие атаки, выделяя несколько векторов атак, а также предлагаем несколько механизмов для смягчения последствий атак на BIOS.

BIOS (базовая система ввода-вывода)

Нажмите, чтобы увеличить

Базовая система ввода/вывода (BIOS), также известная как системная BIOS или ROM BIOS, представляет собой стандарт, определяющий интерфейс встроенного ПО. Программное обеспечение BIOS встроено в ПК и является первым программным обеспечением, запускаемым ПК при включении питания. Основными целями BIOS являются инициализация и тестирование аппаратных компонентов системы, а также запуск загрузчика или операционной системы с дополнительного запоминающего устройства. Он также выполняет важные системные функции, такие как управление питанием и регулировка температуры. Он обеспечивает уровень абстракции для базового оборудования, предоставляя операционным системам и прикладным программам согласованный способ взаимодействия с различными устройствами ввода/вывода.

Изменения в системном оборудовании абстрагируются BIOS от программ, которые используют службы BIOS вместо прямого доступа к оборудованию. Программное обеспечение BIOS хранится на энергонезависимой микросхеме ПЗУ на материнской плате. Его уникальный дизайн делает его совместимым с определенными моделями компьютеров, взаимодействуя с различными устройствами, составляющими дополнительный набор микросхем системы. В современных ПК содержимое BIOS хранится на микросхеме EEPROM.

Чип EEPROM или электронно-стираемая программируемая память только для чтения — это тип энергонезависимой памяти, используемый многими электронными устройствами, для быстрого доступа к которым требуется хранить небольшие объемы данных. Содержимое микросхемы EEPROM можно прошить, т. е. перезаписать новыми данными. Это позволяет легко обновлять программное обеспечение BIOS для добавления новых функций и исправления ошибок. Эта функция также является одной из причин уязвимости чипсетов BIOS для атак. Экран BIOS выглядит следующим образом:

Почему BIOS имеет синий цвет?

Большинство экранов BIOS будут синего цвета, это связано с тем, как производители BIOS реализуют общие цветовые атрибуты BIOS. Атрибуты цвета BIOS представляют собой 8-битные значения, где младшие 4 бита представляют цвет символов, а старшие 4 бита представляют цвет фона. В BIOS для печати белого символа на синем фоне для атрибута цвета BIOS будет установлено шестнадцатеричное значение 0x1F.

При определенных условиях установка старшего бита цвета фона может привести к миганию текста вместо усиления цвета фона. В этом контексте старший бит цвета фона должен оставаться низким в соответствии с распределением цветовых атрибутов BIOS. В результате синий цвет, который содержит значение «1» в шестнадцатеричном формате, обычно используется для непрерывного отображения BIOS с усиленным фоном и четким текстом.

Ведущие производители BIOS

  • Американские мегатенденции
  • Винбонд
  • Феникс
  • АМИ
  • ИБМ
  • Награда

Роль BIOS

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

Обзор BIOS

Системный BIOS может быть двух типов, а именно

  • Устаревший BIOS
  • BIOS на основе спецификации UEFI

Обычный BIOS (устаревший BIOS)

Унаследованная версия BIOS, или обычная версия BIOS, — это проверенный и надежный тип BIOS, который существует уже много лет. Обычно это 16-битная программа, которая записывается на микросхему ПЗУ и размещается на материнской плате компьютера. Этот тип BIOS очень устарел и более уязвим для атак, поэтому рекомендуется использовать более новую и более стабильную спецификацию.

Ключевым компонентом обычного BIOS является загрузочный блок. Эта часть логически отделена от других частей BIOS и изначально выполняется в процессе загрузки BIOS. Затем загрузочный блок проверяет целостность оставшихся прошивок в BIOS и, если они повреждены, восстанавливает их. Затем загрузочный блок инициализирует почти все оборудование, связанное с системой, с помощью самотестирования при включении питания (POST). Во время этой процедуры инициализируются аппаратные компоненты низкого уровня, такие как память, ЦП, набор микросхем и т. д.

После этого процесса он затем загружает другие дополнительные ПЗУ, такие как видеокарты, карты контроллера SCSI, сетевое загрузочное ПЗУ и т. д., которые имеют собственное программное обеспечение BIOS. Эти дополнительные ПЗУ могли информировать BIOS о своей функциональности, а затем их можно было вызвать позже в процессе загрузки в зависимости от порядка, выбранного пользователем. Затем BIOS проверяет основную загрузочную запись (MBR) в порядке приоритета загрузочных устройств. Если какое-либо устройство хранения имеет действительные данные, относящиеся к MBR, оно выбирается. Затем MBR указывает на соответствующий загрузчик операционной системы и, таким образом, в свою очередь загружает операционную систему.

В обычном процессе загрузки режим управления системой (SMM) можно инициировать с помощью обработчиков SMI и кода таблицы ACPI. Режим управления системой — это 32-разрядный режим, работающий в режиме с высокими привилегиями, который может переопределить почти все аппаратные механизмы безопасности защищенного режима. Для перехода в режим SMM BIOS загружает обработчики SMI и инициализирует таблицы и коды ACPI

Процесс загрузки старой версии BIOS

Когда компьютер впервые включается, BIOS является первой частью программного обеспечения, которое запускается, а затем загрузочный блок выполняет POST (самопроверка при включении питания), тем самым гарантируя, что все аппаратное обеспечение в системе является действительным и учтено. После экрана POST у пользователя есть возможность загрузить экран BIOS или вместо этого продолжить загрузку текущей операционной системы, это делается нажатием предварительно назначенной клавиши на клавиатуре. Эта клавиша может различаться в зависимости от производителя BIOS. Затем BIOS проверяет, нужно ли загружать какие-либо дополнительные микропрограммы для отдельных устройств на компьютере, если да, то эти модули загружаются и выполняются.

Единый расширяемый интерфейс встроенного ПО (UEFI)

UEFI (Unified Extensible Firmware Interface) – это спецификация, впервые разработанная Intel в 1990 году для линейки компьютерных систем Itanium. Первоначально она называлась спецификацией EFI и предназначалась для лучшей замены устаревших систем BIOS. UEFI имеет несколько преимуществ по сравнению с обычным BIOS и радикально отличается от этих старых систем.

Спецификация UEFI определяет программируемый программный интерфейс, который находится между микропрограммой устройства и операционной системой. Он обеспечивает почти аналогичный операционной системе интерфейс для прошивки устройства. В зависимости от производителя он может находиться поверх BIOS, но обычно он находится в каталоге /EFI/ в какой-либо форме энергонезависимой памяти. Это может быть микросхема NAND на материнской плате, жестком диске или даже в сетевой папке.

Различия между UEFI и устаревшей версией BIOS

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

  1. Большое адресное пространство: Обычный BIOS был вынужден работать в 16-битном режиме с максимальным адресным пространством 1 МБ. UEFI позволяет работать в 32- и 64-битном режимах, что позволяет запускать более крупные и сложные программы с помощью UEFI.
  2. Поддержка файловых систем большего размера. Традиционный BIOS поддерживает загрузку только с дисков с разделами MBR. Схемы разметки MBR поддерживают только 4 раздела на диске и максимальный размер 2 ТБ. UEFI поддерживает загрузку разделов GPT (разделов GUID), что позволяет загружать очень большие диски размером до 8 ЗБ.
  3. Улучшенные возможности безопасности. Спецификация UEFI также улучшает аспекты безопасности старых систем BIOS. Он поддерживает несколько функций безопасности, таких как безопасная загрузка, а также предоставляет базовую криптографическую инфраструктуру и инфраструктуру с открытым ключом.
  4. Независимая от процессора конструкция: UEFI использует методологию разработки, независимую от процессора, т. е. может работать на многих различных типах архитектур. Доступный код компилируется по-разному для необходимой платформы.
  5. Мощная среда выполнения. Спецификация UEFI предоставляет гораздо более мощную среду выполнения для компьютеров. Он позволяет использовать специальные функции, такие как загрузка по сети, использование мыши, управление ACPI и даже просмотр веб-страниц.
  6. Улучшенная производительность. Было замечено, что операционные системы, совместимые с UEFI, обеспечивают значительный прирост производительности не только во время процесса загрузки, но также во время работы и выключения системы.

Windows 8 использует UEFI

UEFI, хотя и поддерживаемый несколькими поставщиками операционных систем в течение многих лет, не получил широкого распространения до выпуска Windows 8. Windows 8 попыталась включить лучшие части UEFI в свою последнюю версию операционной системы, особенно функцию безопасной загрузки.

Безопасная загрузка

Одна из самых интересных функций UEFI — безопасная загрузка. Она позволяет загружать только ядро ​​ОС, прошедшее проверку подлинности. Windows 8 в значительной степени полагается на этот метод, чтобы гарантировать, что может быть загружена только прошедшая проверку подлинности прошивка с проверенным образом ядра. Это сильно отличается от старых методологий начальной загрузки, когда BIOS может загружать и выполнять любой код начальной загрузки.

При безопасной загрузке до того, как BIOS предоставит полный контроль над ОС, загрузчик удостоверится, что прошивка подписана. Это делается с помощью криптографических подписей, встроенных в прошивку OEM-производителем. В процессе загрузки микропрограмма сравнивает ключ платформы с ключом, имеющимся в микропрограмме каждого устройства. Это сравнение выполняется между базой данных аутентифицированных действительных ключей, если ключ разрешен, то микропрограмма может выполняться, в противном случае она отклоняется.

Это позволяет загружать только устройства, прошедшие проверку подлинности, и предотвращает загрузку и выполнение вредоносного кода загрузчика. Механизм безопасной загрузки в Windows 8 значительно снижает вероятность того, что вирусы и буткиты загрузочного сектора запустятся и повлияют на процесс загрузки машины.

Процесс загрузки UEFI

Процесс загрузки UEFI очень похож на процесс загрузки в обычном BIOS с небольшими изменениями. Процесс делится на этапы, которые происходят последовательно и заканчивается полной передачей управления операционной системе. Загрузка UEFI выполняется в 32-битном или 64-битном защищенном режиме на ЦП, а не в 16-битном режиме, как в устаревшем BIOS.

UEFI также начинается с небольшого количества кода, с которого начинается выполнение всего процесса загрузки. Этот этап называется этапом безопасности (SEC) и действует как основной корень доверия. Затем следует предварительная инициализация EFI (PEI). Этот режим аналогичен фазе предзагрузочной инициализации Legacy bios, на которой прошивка устройства проверяется перед загрузкой. Затем запускается среда выполнения драйверов, где происходит фактическая инициализация дополнительных драйверов устройств, на этом этапе проверяются такие устройства, как сетевые и графические карты.

Загрузочное устройство выбирается на этапе BDS (выбор загрузочного устройства). Это затем передает управление загрузчику, расположенному в разделе GPT, загрузчик обрабатывает загрузку ядра ОС в память.

Распространенные угрозы BIOS

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

Атака, инициированная пользователем

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

Атака вредоносных программ
Атаки вредоносных программ могут использоваться для использования уязвимости в BIOS. Злоумышленник открывает лазейку в систему и вызывает сбой BIOS, используя уязвимую обновленную версию BIOS.

Сетевая или организационная атака

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

Как мы нейтрализуем распространенные угрозы BIOS

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

Чтобы противостоять вредоносным атакам на BIOS, мы можем реализовать следующие методы:
• Метод цифровой аутентификации
• Метод предотвращения отката
• Метод физической аутентификации


Метод автоматической аутентификации
В этом методе подлинность BIOS может быть обеспечена с помощью цифровых подписей. Здесь обновления биоса следует устанавливать только в том случае, если его подлинность проверена. Здесь образы обновлений, встроенные в цифровую подпись от производителей BIOS, будут последним уровнем авторизации. Этот процесс можно автоматизировать с помощью алгоритма проверки подписи, который обеспечивает действительность цифровых подписей. Этот метод цифровой аутентификации должен быть интегрирован, обеспечивая надежные функции безопасности.
Метод предотвращения отката
Реализовать механизм, который гарантирует, что образы обновлений BIOS не будут откатываться до предыдущих версий. Этот метод гарантирует, что в случае установки образа обновления номер его версии должен быть больше текущего. Это может гарантировать, что версия BIOS не будет возвращена к предыдущему образу, содержащему уязвимость.

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


Метод физической аутентификации
Этот метод обеспечивает подлинность обновленных образов, гарантируя физическое присутствие соответствующего органа (системного администратора). Здесь власти могут проверить образы обновлений и обновить BIOS, если образ действителен. Этот метод можно использовать в качестве вспомогательного метода цифровой аутентификации, предоставляя механизм восстановления в таких ситуациях, как сбой BIOS.

Эта функция BIOS является переключателем для параметра процессора Execute Disable Bit. На самом деле аббревиатура XD является сокращением от Execute Disable и специфична для реализации Intel. Реализация AMD называется NX, сокращение от No Execute.

Если этот параметр включен, процессор предотвращает выполнение кода на страницах памяти, предназначенных только для данных. Это обеспечивает некоторую защиту от атак переполнения буфера.

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

Настоятельно рекомендуется включить эту функцию BIOS для повышения защиты от атак переполнения буфера.

Однако обратите внимание, что функция Execute Disable Bit — это аппаратная функция, присутствующая только в более новых процессорах Intel. Если ваш процессор не поддерживает Execute Disable Bit, эта функция BIOS не будет работать.

Кроме того, вы должны использовать операционную систему, поддерживающую функцию Execute Disable Bit. В настоящее время это включает следующие операционные системы:

  • Microsoft Windows Server 2003 с пакетом обновления 1 или более поздней версии.
  • Microsoft Windows XP с пакетом обновления 2 или более поздней версии.
  • Microsoft Windows XP Tablet PC Edition 2005 или более поздней версии.
  • SUSE Linux 9.2 или более поздней версии.
  • Red Hat Enterprise Linux 3, обновление 3 или более поздняя версия.

Кстати, некоторые приложения и драйверы устройств пытаются выполнять код из стека ядра для повышения производительности. Это вызовет ошибку ошибки страницы, если включен Execute Disable Bit. В таких случаях вам потребуется отключить эту функцию BIOS.

Атаки с переполнением буфера представляют собой серьезную угрозу для сетевых компьютеров. Например, червь может заразить компьютер и залить процессор кодом, остановив систему. Червь также будет распространяться по сети, парализуя каждую заражаемую им систему.

Из-за распространенности таких атак корпорация Intel усовершенствовала архитектуру своих процессоров с помощью функции Execute Disable Bit, предназначенной для защиты компьютера от определенных атак, связанных с переполнением буфера. Впервые выпущенная для 64-разрядного процессора Intel Itanium в 2001 г., эта функция появилась в процессорах Intel для настольных ПК и рабочих станций только с ноября 2004 г. Мобильные процессоры Intel с Execute Disable Bit поступили в продажу только в феврале 2005 г.

Процессоры с этой функцией могут ограничивать области памяти, в которых может выполняться код приложения. В сочетании с операционной системой, которая поддерживает функцию Execute Disable Bit, процессор добавляет новый бит атрибута (Execute Disable Bit) в структуры подкачки, используемые для преобразования адресов.

Если для Execute Disable Bit страницы памяти установлено значение 1, эта страница может использоваться только для хранения данных. Он не будет использоваться для хранения исполняемого кода. Но если для Execute Disable Bit страницы памяти установлено значение 0, эта страница может использоваться для хранения данных или исполняемого кода.

Отныне процессор будет проверять Бит отключения выполнения при каждом выполнении кода. Он не будет выполнять код на странице памяти, если для параметра Execute Disable Bit установлено значение 1. Любая попытка выполнить код на такой защищенной странице памяти приведет к исключению ошибки страницы.

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

Эта функция BIOS является переключателем для параметра процессора Execute Disable Bit. На самом деле аббревиатура XD является сокращением от Execute Disable и специфична для реализации Intel. Реализация AMD называется NX, сокращение от No Execute.

Если этот параметр включен, процессор предотвращает выполнение кода на страницах памяти, предназначенных только для данных. Это обеспечивает некоторую защиту от атак переполнения буфера.

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

Настоятельно рекомендуется включить эту функцию BIOS для повышения защиты от атак переполнения буфера.

Однако обратите внимание, что функция Execute Disable Bit — это аппаратная функция, присутствующая только в более новых процессорах Intel. Если ваш процессор не поддерживает Execute Disable Bit, эта функция BIOS не будет работать.

Кроме того, вы должны использовать операционную систему, поддерживающую функцию Execute Disable Bit. В настоящее время это включает следующие операционные системы:

  • Microsoft Windows Server 2003 с пакетом обновления 1 или более поздней версии.
  • Microsoft Windows XP с пакетом обновления 2 или более поздней версии.
  • Microsoft Windows XP Tablet PC Edition 2005 или более поздней версии.
  • SUSE Linux 9.2 или более поздней версии.
  • Red Hat Enterprise Linux 3, обновление 3 или более поздняя версия.

Кстати, некоторые приложения и драйверы устройств пытаются выполнять код из стека ядра для повышения производительности. Это приведет к ошибке страницы, если включен параметр Execute Disable Bit. В таких случаях вам потребуется отключить эту функцию BIOS.

Вернуться > Руководство по оптимизации BIOS | Главная

Если вам нравится наша работа, вы можете поддержать ее, посетив наших спонсоров, участвуя в форумах Tech ARP или даже сделав пожертвование в наш фонд. Любая помощь, которую вы можете оказать, приветствуется!

В этой статье описывается, как определить, доступна ли аппаратная функция DEP и настроена ли она на вашем компьютере.

Применимо к: Windows Server 2012 R2, Windows 10 — все выпуски
Исходный номер базы знаний: 912923

Введение

Предотвращение выполнения данных (DEP) – это набор аппаратных и программных технологий, которые выполняют дополнительные проверки памяти для защиты от использования вредоносного кода.

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

В этой статье описываются требования для использования DEP с аппаратным обеспечением. В этой статье также описывается, как убедиться, что аппаратный DEP работает в Windows.

Подробнее

Требования к использованию аппаратной DEP

Чтобы использовать аппаратную DEP, необходимо выполнить все следующие условия:

Процессор компьютера должен поддерживать аппаратную поддержку DEP.

Многие современные процессоры поддерживают аппаратную реализацию DEP. И Advanced Micro Devices (AMD), и корпорация Intel определили и поставили Windows-совместимые архитектуры, совместимые с DEP. Эта поддержка процессора может быть известна как технология NX (без выполнения) или XD (отключение выполнения). Чтобы определить, поддерживает ли процессор вашего компьютера аппаратную DEP, обратитесь к производителю компьютера.

В BIOS должна быть включена аппаратная поддержка DEP.

На некоторых компьютерах можно отключить поддержку процессора для аппаратного DEP в BIOS. Эта поддержка не может быть отключена. В зависимости от производителя вашего компьютера параметр отключения этой поддержки может быть помечен как «Предотвращение выполнения данных», «XD», «Отключение выполнения» или «NX».

На компьютере должна быть установлена ​​Windows XP с пакетом обновления 2 или Windows Server 2003 с установленным пакетом обновления 1.

Как 32-разрядные, так и 64-разрядные версии Windows поддерживают аппаратную реализацию DEP. Windows XP Media Center Edition 2005 и Microsoft Windows XP Tablet PC Edition 2005 включают все функции и компоненты Windows XP SP2.

Для программ на компьютере должна быть включена аппаратная функция DEP.

В 64-разрядных версиях Windows аппаратно реализованная функция DEP всегда включена для 64-разрядных собственных программ. Однако, в зависимости от вашей конфигурации, аппаратно реализованная функция DEP может быть отключена для 32-разрядных программ.

Как убедиться, что аппаратный DEP работает в Windows

Чтобы убедиться, что аппаратная DEP работает в Windows, используйте один из следующих способов.

Способ 1. Используйте инструмент командной строки Wmic

Для проверки параметров DEP можно использовать инструмент командной строки Wmic. Чтобы определить, доступна ли аппаратная DEP, выполните следующие действия:

Нажмите "Пуск", выберите "Выполнить", введите cmd в поле "Открыть" и нажмите "ОК".

В командной строке введите следующую команду и нажмите клавишу ВВОД:

Если в выходных данных указано значение «ИСТИНА», доступна аппаратная защита от ошибок.

Чтобы определить текущую политику поддержки DEP, выполните следующие действия.

Нажмите "Пуск", выберите "Выполнить", введите cmd в поле "Открыть" и нажмите "ОК".

В командной строке введите следующую команду и нажмите клавишу ВВОД:

Возвращенное значение будет 0, 1, 2 или 3. Это значение соответствует одной из политик поддержки DEP, описанных в следующей таблице.

Чтобы убедиться, что Windows работает с аппаратным DEP, проверьте свойство DataExecutionPrevention_Drivers класса Win32_OperatingSystem. В некоторых конфигурациях системы аппаратный DEP можно отключить с помощью переключателей /nopae или /execute в файле Boot.ini. Чтобы проверить это свойство, введите в командной строке следующую команду:
wmic OS Get DataExecutionPrevention_Drivers

Способ 2. Используйте графический интерфейс пользователя

Чтобы использовать графический интерфейс пользователя для определения доступности DEP, выполните следующие действия:

  1. Нажмите «Пуск», выберите «Выполнить», введите wbemtest в поле «Открыть» и нажмите «ОК».
  2. В диалоговом окне "Тестер инструментария управления Windows" нажмите "Подключиться".
  3. В поле в верхней части диалогового окна "Подключение" введите root\cimv2 и нажмите "Подключиться".
  4. Нажмите "Экземпляры перечисления".
  5. В диалоговом окне "Информация о классе" введите Win32_OperatingSystem в поле "Введите имя суперкласса" и нажмите "ОК".
  6. В диалоговом окне "Результат запроса" дважды щелкните верхний элемент.

Этот элемент начинается с "Win32_OperatingSystem.Name=Microsoft".

Чтобы определить режим, в котором работает DEP, проверьте свойство DataExecutionPrevention_SupportPolicy класса Win32_OperatingSystem. Таблица в конце метода 1 описывает каждое значение политики поддержки.

Чтобы убедиться, что аппаратная DEP включена в Windows, проверьте свойство DataExecutionPrevention_Drivers класса Win32_OperatingSystem. В некоторых конфигурациях системы аппаратный DEP можно отключить с помощью переключателей /nopae или /execute в файле Boot.ini.

Обсуждаемые в этой статье сторонние продукты производятся компаниями, независимыми от Microsoft. Microsoft не дает никаких гарантий, подразумеваемых или иных, в отношении производительности или надежности этих продуктов.

Когда я нажимаю кнопку "Завершение работы" в Windows/Linux, компьютер выключается. Как команда «Выключить» на самом деле заставила компьютер физически отключиться?

Чтобы было понятно:

Когда мы бьем по мячу, между мячом и нашей ногой возникает физический контакт, благодаря которому мяч движется. Так как же достигается физическая связь между программным обеспечением и оборудованием? Как простой текст кодов заставляет компьютер делать то, что он делает?

Как ни странно, и физический аппаратный интерфейс, и взаимодействие шаров в вашем примере основаны на электромагнитных силах.

Я просмотрел все ответы, и ни один из них не подходит. Как именно ОС создает например зарядку 5Вольт? Вот в чем вопрос. Я думаю, мы все знаем, что это единицы и нули, схемы и электричество.

Это довольно интересный вопрос, даже пролистав все ответы, я так и не нашел удовлетворительного ответа. Большинство ответов сосредоточены на том, как работает компьютер, но вопрос в том, как простой код, который не находится в физическом мире (например, MOV AX, 0x01), на самом деле физически касается ЦП, чтобы он мог посылать некоторые сигналы (электроны) в память, чтобы изменить память статус конкретного адреса. В основном вопрос заключается в следующем: как код нефизического мира касается электронов физического мира?

14 ответов 14

Хотя ответ довольно сложен и требует понимания основ электрических систем и цепей (KVL, KCL), двоичных чисел и логической логики, мы можем описать процесс на высоком уровне: код (представленный простыми текстовыми словами ) компилируется, собирается и в конечном итоге преобразуется в комбинацию нулей и единиц, которые представляют соответственно низкое и высокое напряжение.

Когда к материалам и цепям прикладывается напряжение, это напряжение может изменять их физические свойства, например замыкать цепь, которая подает ток на лампочку (заставляя ее загораться), или подавать ток на двигатель постоянного тока, который может открыться. CD/DVD/Bluray/(?) привод.

Теперь представьте себе гипотетический 1-битный ЦП, способный замыкать цепь и подавать ток на зуммер, издающий звук. Этот 1-битный процессор имеет один вход, который может принимать два значения: 0 и 1.

У этого простого процессора очень простой язык ассемблера: ON и OFF , и у нас есть причудливый язык программирования, предоставляющий несколько более приятных абстракций: cpu.turnOn , cpu.turnOff .

Я пишу свою программу cpu.turnOn; скомпилируйте его, соберите, и он готов к запуску. Когда я запускаю программу на своем процессоре, включается зуммер.

В реальном мире компьютеры состоят из более сложных систем. Вместо одного 1-разрядного процессора у нас есть 64-разрядный процессор со сложными наборами инструкций и множеством устройств.

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

Нижний уровень – это напряжения, схемы и микросхемы, или то, что вы можете назвать фактическим "физическим оборудованием". Рядом с аппаратным обеспечением обычно находится «микроконтроллер» или специализированный процессор, который предназначен для взаимодействия со спецификой аппаратного обеспечения. Представьте себе дисковод для оптических дисков, его микроконтроллер имеет возможность выдвигать отсек для дисковода, запускать двигатель, выравнивать лазер и передавать данные с диска.

Программное обеспечение, на котором работает микроконтроллер, называется прошивкой. Это специализированная операционная система, которая управляет аппаратными функциями и может также включать API. В примере с воображаемым 1-битным процессором программа будет встроенной программой, а cpu.turnOn, cpu.turnOff будет API.

Поскольку компьютер состоит из множества аппаратных компонентов (графика, хранилище, связь, ввод-вывод), компьютеры состоят из множества специализированных прошивок. Чтобы сделать что-то полезное с этим оборудованием, необходим еще один уровень абстракции, например, для универсальной работы с клавиатурами или для того, чтобы мыши, сенсорные панели и трекболы вели себя одинаково, несмотря на разные взаимодействия. Здесь на помощь приходит операционная система.ОС предоставляет API для управления группами связанных устройств, а также предоставляет крючки для поставщиков оборудования, чтобы обеспечить преобразование между командами ОС и командами, понятными микроконтроллеру. В Windows это драйвер.

Следующим уровнем абстракции над операционными системами и драйверами являются приложения, которые пользователи используют для выполнения реальной работы (или игры в Fortnite). Эти программы написаны на множестве языков, SDK и наборов инструментов, и именно поэтому существует StackOverflow. Эти языки компилируются в исполняемый код, который загружается и управляется операционной системой, а затем выполняется компьютером.

Объединяя все это с командой выключения: интерпретатор команд использует API уровня ОС, который управляет питанием системы. Этот API отправляет уведомление остальной части ОС для обработки таких вещей, как изящная очистка буферов памяти, сохранение состояния приложения, завершение каналов связи и отключение различных аппаратных систем (или, что более вероятно, переход в режим низкого энергопотребления). Он также использует драйвер питания (ACPI?) для взаимодействия с подсистемой управления питанием компьютера. Эта подсистема получает указание отключиться, что, в свою очередь, посылает сигнал на блок питания компьютера, чтобы разорвать цепь и больше не подавать питание на большинство компонентов.

Читайте также:

Значение свойства DataExecutionPrevention_SupportPolicy Уровень политики Описание
2 OptIn (конфигурация по умолчанию) DEP применяется только к системным компонентам и службам Windows
3 OptOut DEP включен для всех процессов. Администраторы могут вручную создать список определенных приложений, к которым не применяется DEP
1 AlwaysOn DEP включен для всех процессы
0 AlwaysOff DEP не включен ни для одного процесса