Использование безопасных целочисленных функций
Одним из способов свести к минимуму проблемы безопасности является предотвращение переполнения и переполнения целочисленных чисел. Переполнение целочисленных чисел происходит, когда результат арифметической операции превышает объем памяти типа данных, который принимает его. Это приводит к усечению целого числа и неправильному результату. Недополук возникает, когда операция (обычно вычитание) дает неверный результат. Приведение между двумя типами данных также может привести к неверным результатам из-за усечения результата, который не соответствует новому пространству памяти.
Библиотека ntintsafe предоставляет набор функций C, которые выполняют безопасные целочисленные арифметические операции с проверкой границ, чтобы предотвратить переполнения и недополуки в коде режима ядра. Эти функции соответствуют функциям Windows IntSafe, используемым в коде приложения. Эти функции используются для вычисления индекса или размера буфера или для вычисления другой формы границ проверка. Функции оптимизированы для скорости.
Безопасные целочисленные функции обладают следующими преимуществами:
Размер целевого буфера всегда предоставляется функции, чтобы гарантировать, что функция не записывает данные за конец буфера.
Буферы гарантированно завершаются со значением NULL, даже если операция усекает предполагаемый результат.
Все функции возвращают NTSTATUS с одним возможным кодом успешного выполнения (STATUS_SUCCESS) и одним возможным условием ошибки (STATUS_INTEGER_OVERFLOW).
Библиотека ntintsafe имеет две категории функций:
Функции преобразования. Эти функции выполняют преобразования между двумя типами данных.
Арифметические функции— эти функции выполняют операции сложения, вычитания и умножения для каждого типа данных.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по