Slide 9
Slide 9 text
関数を呼び出すだけの関数をみる
要するに$spが指していて書き込み可能なら別に決まった場所じゃなくてもよい
mov %fs:0xfffffffffffffff8,%rcx
cmp 0x10(%rcx),%rsp
jbe 44c1b5
sub $0x10,%rsp
mov %rbp,0x8(%rsp)
lea 0x8(%rsp),%rbp
mov $0xdeadbeef,%eax
mov %rax,(%rsp)
callq 44c1c0
mov 0x8(%rsp),%rbp
add $0x10,%rsp
retq
callq 444570
jmp 44c180
スタックが足りなくなる場合は
runtime.morestackで拡張
スタックに%rbpと、引数を積む
callで、戻り番地が積まれる
スタックを元に戻す
caller’s rbp
引数
rbp
戻り番地
rsp