タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

asmとgccに関するtrashsuiteのブックマーク (1)

  • off-by-one error でreturn addressが上書きされるまで - memologue

    Phrack Magazine (http://phrack.org/phrack/55/P55-08) の off-by-one exploit を読みました。要約しておきます。 void func(const char* sm) { char buffer[256]; for(int i=0; i<=256; ++i) { // 255が正解 buffer[i] = sm[i]; } } int main(int argc, char** argv) { func(argv[1]); return 0; } このような、1バイトだけオーバーフローするbugのあるコードを書いてしまい、更に引数 sm に自由なバイト列を設定できる場合、それがどのようにして arbitrary code execution に繋がるかが書いてあります。 以下、簡単な解説です。 buffer[256] には

    off-by-one error でreturn addressが上書きされるまで - memologue
    trashsuite
    trashsuite 2010/04/13
    『gccはデフォルトで、スタックの末尾を16バイト境界にアラインさせる』
  • 1