私のプロセスのためにAddress Space Layout Randomization(ASLR)を無効にします。

私のプロセスのためにAddress Space Layout Randomization(ASLR)を無効にします。

ASLR(Address Space Layout Randomization)が無効になっているLinuxでいくつかのプログラムを実行したいと思います。システムレベルでは無効になっていることがわかります。つまり、/proc/sys/kernel/randomize_va_space0に設定されています。

/proc/sys/kernel/randomize_va_spaceただし、管理者権限がないため、値を変更する権限がなく、管理者は私の要求を受け入れません。だから私は自分のプロセスに対してそれを無効にしたいと思います。可能ですか?

答え1

私はあなたがこれを行うことができると思います:

  • 分岐したプログラムの作成
  • フォーク後は、次の作業を行う必要があります。

    int old, rc;
    old = personality(0xffffffff); /* Fetch old personality. */
    rc = personality(old | ADDR_NO_RANDOMIZE);
    if (-1 == rc) {
        perror("personality");
    }
    
  • その後、execプログラム

関連情報