3

c/c++ で呼び出しスタックを損傷する通常のコードはありますか? 私は一種のハッキングや何かを意味するのではなく、単に見落としや何かを意味するのではなく、ランダムではなく、毎回ダメージを与えます. 誰かが元同僚が成功したと私に言ったが、私はそれが可能だとは思わない. 誰かがそのような経験をしていますか?

4

2 に答える 2

6

はい、簡単です。実際、非常に一般的な問題の 1 つです。このことを考慮:

void foo()
{
    int i;
    int *p = &i;
    p -= 5; // now point somewhere god knows where, generally undefined behavior
    *p = 0; // boom, on different compilers will end up with various bad things,
       // including potentially trashing the call stack
}

ローカル配列/バッファの境界外アクセスの多くの場合、最終的にスタックが破棄されます。

于 2012-04-06T09:43:28.243 に答える