# No-exec / NX {{#include ../../banners/hacktricks-training.md}} ## Informazioni di base Il **No-Execute (NX)** bit, noto anche come **Execute Disable (XD)** nella terminologia Intel, è una funzione di sicurezza basata sull'hardware progettata per **mitigare** gli effetti degli attacchi di **buffer overflow**. Quando implementato e abilitato, distingue tra le regioni di memoria destinate a **codice eseguibile** e quelle destinate a **dati**, come lo **stack** e l'**heap**. L'idea principale è quella di impedire a un attaccante di eseguire codice malevolo attraverso vulnerabilità di buffer overflow, mettendo ad esempio il codice malevolo nello stack e dirigendo il flusso di esecuzione verso di esso. ## Bypass - È possibile utilizzare tecniche come [**ROP**](../rop-return-oriented-programing/index.html) **per bypassare** questa protezione eseguendo porzioni di codice eseguibile già presenti nel binario. - [**Ret2libc**](../rop-return-oriented-programing/ret2lib/index.html) - [**Ret2syscall**](../rop-return-oriented-programing/rop-syscall-execv/index.html) - **Ret2...** {{#include ../../banners/hacktricks-training.md}}