精華區beta CSSE 關於我們 聯絡資訊
像這樣? #include<stdio.h> int bird (){ printf("ccc..."); exit(0); } int main(int a){ long p[1]; p[2]= (long)bird; return 0; } ※ 引述《spanky (小莫)》之銘言: : 相信大家都知道這個東西 : 也知道說就是要將return address改掉 : 跳到我們想要的地方 : 可是到底要怎麼計算出return address的所在位置呢??? : 我想到的方法是將code先assembly後慢慢的trace : 然後累加每道指令的長度 : 如此算出return address所在的記憶位置 : 請問這個方法可以嗎??? : 有沒有其他的方法呢??? : 謝謝~~~ : 另外推薦大家一個不錯的網站 : http://www.hacker.org.tw/?c=home : 有許多關於網路安全的東西 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.141.3
kukulcan:起手式 自體爆破, Stack BOF,暴 main RET 11/28 12:17
supergothere:=.= 這啥鬼..你怎跑這來... 11/28 12:53
akalashnikov:沒錯阿...return address被改了阿 11/29 21:54
kukulcan:看了以上code,我強烈懷疑你跟某瘦皮尖嘴逃兵鳥有關連。 11/29 22:16
UNARYvvv:我也這麼覺得...看到 "bird" 看到 "ccc" 著實驚了一下.. 12/01 20:44
kukulcan:重點是這個程式碼與他的投影片只差 "換行" 而已 12/04 16:24