0

知りたいのですが、バッファ オーバーフローの脆弱性やその他の脆弱性を利用してスタックを上書きし、上位メモリ アドレスではなく下位メモリ アドレスを上書きする方法はありますか!? (インテル x86 アーチ)

4

1 に答える 1

0

問題のバッファオーバーフローに依存します。

char *buffer_start;
char *buffer_pos;
char *buffer_end;

void write_data(size_t offset, int c)
{
    if (buffer_pos + offset >= buffer_end)
        abort();
    buffer_pos += offset;
    *buffer_pos = c;
    buffer_pos++;
}

上記のシナリオでは、オーバーフローするオフセットを指定することで下位アドレスに書き込むことができます。これにより、下位アドレスへのバッファ オーバーフローが発生します。

バッファ オーバーフローを修正するには、次のようにチェックを記述します。

if (offset >= buffer_end - buffer_pos)
    abort();
于 2013-08-17T22:51:17.203 に答える