signal(SIGSEGV, sigsegv_handler);
sigsegv => 當收到 Segmentation Fault(分段錯誤)時,會執行指定的處理函數sigsegv_handler
而先用 gets 取得輸入 buf1 ,可以存 100 個
接著跑到 vuln 函式進行 strcpy,從 input 複製到 buf2 的動作
但 buf2 只有 16 個位置,所以只要輸入超過16
而報錯就會出現 flag
但不知道為什麼,我輸入了 20 個才報錯(還不清楚原因,之後會補,懷疑是要4bytes才會覆蓋到vuln函數的返回地址