15

動的メモリを割り当て、いくつかのアセンブラ オペコード ( NOP RETの0x90 0xC2など)を書き込み、その動的メモリを指す関数ポインタを作成し、C プログラム内から通常の関数のように実行することで、動的関数を作成することは可能ですか? ?

ターゲットは通常の x86 Linux システムである必要があります。

4

3 に答える 3

2

多くのシステムでは、長い間、仮想メモリ ページに実行可能コードを含めることができるかどうかを示すフラグがありました。ヒープに割り当てられたメモリには、この「実行可能」フラグが設定されていない可能性があります。いいえ、直接それを行うことはできません。

これを行うには、OS 固有の機能を使用する必要があり、プログラムを「管理者」または「ルート」として実行する必要がある場合がありますが、必要ではないようです。

于 2013-10-28T12:19:37.470 に答える