2
私は(GCCでコンパイル)、簡単なCプログラムを分解して、スタックのカナリアを配置するための責任の命令は次のとおりです。カナリアが8バイト(rax
)で、まだ、唯一の4バイト(というスタック・カナリアの半分しかクリアされないのはなぜですか?
mov %fs:0x28,%rax
mov %rax,-0x8(%rbp)
xor %eax,%eax
注意xor eax eax
)がクリアされます。
これは意図的ですか?コードがちょうどスタックカナリーの半分を漏らしたようです。
これは恥ずかしいほど簡単な質問であることが判明しました。ありがとう! – 0x00