2013-08-31 73 views
-3

我已經在很多地方看過,字符串緩衝區溢出會導致添加惡意代碼或者很容易被黑客攻擊。但字符串駐留在BSS部分以及它如何影響代碼部分。字符串緩衝區如何導致運行惡意代碼?

其次,即使字符串不超限,仍然可以通過十六進制編輯器看到,所以它們不能同樣危險嗎?

謝謝。

回答

3

buffer overflow可能出現在堆棧分配的字符串上(例如未經檢查的本地char buf[12]陣列上的strcat調用)。這就是爲什麼sprintf已經過時,你應該始終使用snprintf

它可以通過惡意代碼和malware,例如是exploitedshellcode

不要試圖製造一些這樣的惡意代碼:一個青少年在上個世紀被黑客入侵併利用sendmail監獄。

順便說一句,緩衝區溢出堆內部也可以給很多麻煩,通過破壞無關的數據。