Re: [問題] Buffer overflow 和 Instruction address

看板C_and_CPP作者 (下班後才下棋)時間15年前 (2010/12/09 10:21), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)
先講一下 main int main(int argc, char **argv[]) { int x; x = 0; func(argv[1]); func(argv[1]); func(argv[1]); x = 1; printf("x is 1\n"); printf("x is 0\n"); } 假設現在改成這樣 那麼每一次 function call, 在 stack 上的 return pointer 應該都是不一樣的吧 ? 這邊可理解嗎 ? 但是每次呼叫所有其他的條件都一樣 如果你能夠把超出 array 範圍之外, stack 上的東西都印出來 是不是能觀察到些什麼 ? 知道了 return pointer 存在哪 每次 increment 是多少之後 把 main 復原, 接下來你就可以用你的 ret 指標改改看 對他加上不同的 increment 是不是有你預期的行為 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.51
文章代碼(AID): #1D03qFdB (C_and_CPP)
文章代碼(AID): #1D03qFdB (C_and_CPP)