<< 22/52 >>
First Last

防御手法 - SSP の仕組み

関数の入口でスタックの途中に canary を挿入して
関数の出口で canary が変わってたら自殺してくれる

説明サイズ
buf64 bytes???
canary4 bytes0x??????00
すきま8 bytes???
前のスタックフレーム4 bytes0xffffd4??
呼び出し元アドレス4 bytes0x804841b
fooの引数0 bytesN/A

canary は 0x??????00 な値で、プログラム起動時に適当に作ってある
(乱数は AT_RANDOM という auxv で kernel が渡してくる)

末尾が 0x00 なのは、 printf などでメモリをダンプしようとしたらそこで止まるように