web-dev-qa-db-ja.com

LinuxでNXを無効にする方法

私はスタックバッファオーバーフローの悪用を学んでおり、後で質問を投稿しました シェルコードセグメンテーション違反 テストプログラムからシェルコードを実行するか、脆弱なプログラムに注入されると、セグメンテーション違反が発生します。今、私はそれがNXによって引き起こされているかもしれないことを知りました。 dmesgでこれを検索すると、次の行が見つかりました。

[    0.000000] NX (Execute Disable) protection: active

だから私の質問は、LinuxでNXビットを無効にする方法です。 4.18.0カーネルでKaliLinux64ビットを使用しています。

2
asdfghj

カーネルコマンドラインnoexec=offを指定して起動することにより、LinuxでNXをグローバルに無効にできます。

noexec      [X86]
            On X86-32 available only on PAE configured kernels.
            noexec=on: enable non-executable mappings (default)
            noexec=off: disable non-executable mappings

noexec32    [X86-64]
            This affects only 32-bit executables.
            noexec32=on: enable non-executable mappings (default)
                read doesn't imply executable mappings
            noexec32=off: disable non-executable mappings
                read implies executable mappings
3
forest