7
votes

Comment fonctionne le drapeau NX?

Pourriez-vous s'il vous plaît expliquer ce que le drapeau NX est et comment cela fonctionne (s'il vous plaît être technique)?


1 commentaires

+1 de moi..Interresting question.


3 Réponses :


2
votes

de Wikipedia

le bit NX, qui ne signifie pas Exécuter, une technologie utilisée dans les CPU séparer les zones de mémoire pour une utilisation Soit le stockage du processeur instructions (ou code) ou pour stockage des données, une caractéristique normalement trouvée que dans les processeurs de Harvard Architecture. Cependant, le bit NX est en train d'être de plus en plus utilisé dans le von conventionnel Processeurs d'architecture de Neumann, pour raisons de sécurité.

Un système d'exploitation avec support pour le bit NX peut marquer certaines zones de mémoire comme non exécutable. le le processeur refusera ensuite d'exécuter Tout code résidant dans ces domaines de Mémoire. La technique générale, connue comme protection de l'espace exécutable, est utilisé pour empêcher certains types de logiciel malveillant de prendre en charge ordinateurs en insérant leur code dans Zone de stockage de données d'un autre programme et exécuter leur propre code de l'intérieur cette section; Ceci est connu comme un Attaque de débordement tampon.


2 commentaires

N'est-ce pas la fonctionnalité utilisée par Windows à l'aide du drapeau de DEP, en fonction du type de processeur?


J'aimerais une réponse plus technique, j'espère avoir un exemple pratique du Bit NX en action. Je n'ai pas vraiment besoin de cela, je demande seulement à ajouter des connaissances à ce sujet (et sur moi aussi, je n'ai pas joué avec elle, bien que je sache ce que c'est à propos de)



5
votes

Il marque une page de mémoire non exécutable dans le système de mémoire virtuelle et dans la TLB (une structure utilisée par la CPU pour résoudre les mappages de mémoire virtuelle). Si un code de programme sera exécuté à partir de cette page, la CPU va défaut et transférer le contrôle au système d'exploitation pour la manipulation des erreurs.

Les programmes ont normalement leur code binaire et leurs données statiques dans une section de mémoire en lecture seule et s'ils essaient de y écrire, la CPU défaut, puis le système d'exploitation tue normalement l'application (celle-ci est connue sous le nom de défaut de segmentation ou violation d'accès).

Pour des raisons de sécurité, la mémoire de données de lecture / écriture d'un programme est généralement protégée NX par défaut. Cela empêche un attaquant de fournir une certaine application son code malveillant sous forme de données, ce qui rend l'application écrivant celle de sa zone de données, puis de l'exécution de ce code exécuté d'une manière ou d'une autre, généralement par une vulnérabilité de débordement / sousflage tampon dans l'application, écrasant l'adresse de retour d'une fonction en pile avec l'emplacement du code malveillant dans la zone de données.

Certaines applications légitimes (les émulateurs les plus performants et les compilateurs JIT) doivent également exécuter leurs données, car ils compilent le code au moment de l'exécution, mais ils allouent spécifiquement la mémoire sans le drapeau NX pour cela.


3 commentaires

Pourquoi en avez-vous besoin ? Pouvez-vous faire un code simple le montrer en action?


Ajouté d'autres informations. Exemple de code d'écriture est difficile car il serait fortement dépendant de la plate-forme.


@Tronic pouvez-vous expliquer comment cela diffère du bit valide-invalide? Pourquoi le bit NX n'est pas redondant lorsque vous avez déjà un bit valide-invalide?



0
votes

Regardez sur ce ' DEP ' trouvé sur Wikipedia qui utilise le bit NX. En ce qui concerne la fourniture de la réponse technique, désolé, je ne sais pas assez à ce sujet, mais pour citer:

La prévention de l'exécution des données (DEP) est une fonctionnalité de sécurité incluse dans le moderne Systèmes d'exploitation Microsoft Windows destinés à prévenir un Application ou service d'exécution du code d'une région de mémoire non exécutable. ....

Dep a été introduit dans Windows XP Service Pack 2 et est inclus dans Windows XP Tablet PC Edition 2005, Service Pack de Windows Server 2003 1 et version ultérieure, Windows Vista et Windows Server 2008 et toutes les versions de Windows. ...

DEP appliqué au matériel permet au BIT NX sur des processeurs compatibles compatibles, à travers le Utilisation automatique du noyau PAE dans des fenêtres 32 bits et du support natif sur 64 bits graines. Windows Vista Dep fonctionne en marquant certaines parties de la mémoire comme destinées à détenir uniquement des données, que le processeur activé le bit NX ou XD comprend alors comme non exécutable. Cela aide à prévenir les attaques de dépassement de tampon de réussir. Sous Windows Vista, le statut de DEP pour un processus, c'est-à-dire que DEP est activé ou désactivé pour un Un processus particulier peut être visualisé sur l'onglet Processes de la tâche Windows Gestionnaire.

Voir aussi ici de la base de connaissances du MSDN sur DEP. Il y a une explication très détaillée ici sur la façon dont cela fonctionne.

J'espère que cela aide, Meilleures salutations, Tom.


0 commentaires