utilisation de Coffre fonctions de chaîne

De nombreux problèmes de sécurité système sont dus à une mauvaise gestion de la mémoire tampon et aux dépassements de mémoire tampon résultants. Une gestion de mémoire tampon médiocre est souvent associée aux opérations de manipulation de chaînes. Les fonctions de manipulation de chaînes standard fournies par les bibliothèques du runtime de langage C/C++ (strcat, strcpy, sprintf, etc.) n’empêchent pas l’écriture au-delà de la fin des mémoires tampons.

Deux nouveaux jeux de fonctions de manipulation de chaînes, appelés fonctions de chaîne sécurisée, fournissent un traitement supplémentaire pour la gestion correcte de la mémoire tampon dans votre code. ces fonctions de chaîne sécurisée sont disponibles dans le kit de pilotes Windows (WDK) et pour Microsoft Windows XP SP1 et versions ultérieures du kit de développement de pilotes (DDK) et SDK Windows. Ils sont destinés à remplacer leurs équivalents C/C++ intégrés et les routines similaires fournies par Windows.

Un ensemble de fonctions de chaîne sécurisées est destiné à être utilisé dans le code en mode noyau. Ces fonctions sont prototypées dans un fichier d’en-tête nommé Ntstrsafe. h. Ce fichier d’en-tête et une bibliothèque associée sont disponibles dans le kit WDK.

L’autre ensemble de fonctions de chaîne sécurisées est destiné à être utilisé dans les applications en mode utilisateur. Un fichier d’en-tête correspondant, strsafe. h, contient des prototypes pour ces fonctions. ce fichier et une bibliothèque associée sont disponibles dans le SDK Windows. Pour plus d’informations sur strsafe. h, consultez utilisation des fonctions strsafe. h.

L’ensemble des fonctions de chaîne sécurisée en mode noyau se compose des deux sous-ensembles suivants :

Les fonctions de chaîne sécurisée en mode noyau offrent les fonctionnalités suivantes :

  • Chaque fonction de chaîne sécurisée reçoit la taille de la mémoire tampon de destination en tant qu’entrée. La fonction peut donc s’assurer qu’elle n’écrit pas au-delà de la fin de la mémoire tampon.

  • Les fonctions de chaîne Unicode et ANSI terminent toutes les chaînes de sortie par un caractère NULL, même si l’opération tronque le résultat prévu.

  • Toutes les fonctions de chaîne sécurisées retournent une valeur NTSTATUS, avec un seul code de réussite possible (STATUS_SUCCESS).

  • La plupart des fonctions de chaîne sécurisées sont disponibles dans une version comptée en octets et dans un caractère. Par exemple, RtlStringCbCata concatène deux chaînes comptées en octets et RtlStringCchCata concatène deux chaînes à caractère calculé.

  • La plupart des fonctions de chaîne sécurisées sont disponibles dans une version par suffixe étendue, qui fournit des fonctionnalités supplémentaires. Par exemple, RtlStringCbCatExa étend les fonctionnalités de RtlStringCbCata.

Cette section comprend les rubriques suivantes :

résumé des fonctions de chaîne de Coffre Kernel-Mode

importation de Kernel-Mode Coffre fonctions de chaîne