¿Linux (kernel y aplicaciones) es compatible con NX-bit en los procesadores ARM? Si es así, ¿cómo puedo verificar si un binario ARM está compilado con esta protección habilitada?
La implementación de NX-bit es compatible desde ARMv6, y sí, linux también tiene soporte para ella. (Las implementaciones de NX necesitan soporte de sistema operativo y de CPU)
Ahora, si desea verificar el bit nx, puede hacerlo como con cualquier otra plataforma, hay un buen script antiguo llamado checksec.sh del equipo de trapkit, aquí puede ver la implementación:
# check for NX support
if readelf -W -l $1 2>/dev/null | grep 'GNU_STACK' | grep -q 'RWE'; then
echo -n -e '3[31mNX disabled3[m '
else
echo -n -e '3[32mNX enabled 3[m '
fi
Script completo: enlace
Si desea ver una implementación en python, Peda (Python Exploit Development Assistance para GDB) también tiene una (ellos portaron el script trapkit)