このexecstack
プログラムは、実行可能なスタックを必要とするELFバイナリを表示するために使用できます。
ヒープを実行可能としてマークする同様の方法はありますか?単一のバイナリが優先されますが、これが不可能な場合は、システム全体のソリューションも役立ちます。
ベストアンサー1
実行可能スタック設定(または実行不可能スタック設定)は、私が試したLinuxバージョン(x86_64の2.6.9、x86_64の2.4.21、2.6.20.9 x86、3.1.4 x86)には影響しません。現在、Solaris または *BSD システムにアクセスできません。私の考えでは、問題のカーネルが「スタックで」コードの実行を無効にするようにコンパイルされていないようです。これを見てウィキペディア記事、これはパッチまたはコンパイルオプションが必要であることを示します。
私はすでに書いたmallocメモリで実行されるCプログラム。上記と同じコアとアーキテクチャで動作します。実行可能ファイルを「ヒープ実行可能ファイル」としてマークするexecstackなどの特定のツールを見つけることができるかどうか疑問です。私が言うことができる最も良いニュースは、mprotect()
システムコールを使用する必要があるということです。たとえ使用しても、mprotect()
より珍しいアーキテクチャ(以前のDEC AlphaまたはHPの「正確なアーキテクチャ」)のいくつかは、ヒープの外部実行を絶対に許可しないことに気付くでしょう。