web-dev-qa-db-ja.com

LinuxはARMプロセッサでNX-bitをサポートしていますか?

Linux(カーネルとアプリケーション)は NX-bit on ARMプロセッサーをサポートしていますか?サポートしている場合、ARMバイナリがこの保護を有効にしてコンパイルされているかどうかを確認するにはどうすればよいですか? ?

4
inorik

NX-bitの実装はARMv6以降でサポートされており、Linuxでもサポートされています。 (NX実装にはOSサポートとCPUサポートの両方が必要です)

Nxビットをチェックしたい場合は、他のプラットフォームと同様に行うことができます。trapkitチームのchecksec.shと呼ばれる古き良きスクリプトがあり、ここで実装を確認できます。

  # check for NX support
  if readelf -W -l $1 2>/dev/null | grep 'GNU_STACK' | grep -q 'RWE'; then
    echo -n -e '\033[31mNX disabled\033[m   '
  else
    echo -n -e '\033[32mNX enabled \033[m   '
  fi  

完全なスクリプト: http://www.trapkit.de/tools/checksec.html

Pythonでの実装を見たい場合は、Peda(GDBのPython Exploit Development Assistance)にも1つあります(トラップキットスクリプトが移植されています)。

https://github.com/longld/peda/blob/master/peda.py#L254

5
jmingov