Utilisation des fonctions d’entier sécurisé

Une façon de réduire les problèmes de sécurité consiste à empêcher les dépassements de capacité et les flux inférieurs d’entiers. Les dépassements d’entier se produisent lorsque le résultat d’une opération arithmétique est supérieur à l’espace mémoire du type de données défini pour le recevoir. Cela entraîne la troncation de l’entier et un résultat incorrect. Un flux inférieur se produit lorsqu’une opération, généralement soustraction, donne un résultat incorrect. Le cast entre deux types de données peut également entraîner des résultats incorrects en raison de la troncation d’un résultat qui ne correspond pas au nouvel espace mémoire.

La bibliothèque ntintsafe fournit un ensemble de fonctions C qui effectuent des opérations arithmétiques d’entiers sécurisés avec une vérification des limites pour empêcher les dépassements de capacité et les sous-flux dans le code en mode noyau. Ces fonctions correspondent aux fonctions Windows IntSafe utilisées par le code de l’application. Vous utilisez ces fonctions pour calculer une taille d’index ou de mémoire tampon, ou pour calculer une autre forme de limites case activée. Les fonctions sont optimisées pour la vitesse.

Les fonctions entières sécurisées offrent les avantages suivants :

  • La taille de la mémoire tampon de destination est toujours fournie à la fonction pour s’assurer que la fonction n’écrit pas au-delà de la fin de la mémoire tampon.

  • Il est garanti que les mémoires tampons se terminent par la valeur Null, même si l’opération tronque le résultat prévu.

  • Toutes les fonctions retournent un NTSTATUS, avec un seul code de réussite possible (STATUS_SUCCESS) et une condition d’erreur (STATUS_INTEGER_OVERFLOW).

La bibliothèque ntintsafe comporte deux catégories de fonctions :

  • Fonctions de conversion : ces fonctions effectuent des conversions entre deux types de données.

  • Fonctions arithmétiques : ces fonctions effectuent des opérations d’addition, de soustraction et de multiplication pour chaque type de données.

Résumé de Kernel-Mode fonctions d’entier sécurisé

Importation Kernel-Mode fonctions d’entier sécurisé