1.機器級編程抽象
(1)機器級程序的格式和行爲,定義爲指令集體系結構(ISA),它定義了處理器狀態,指令的格式,以及每條指令對狀態的影響。
(2)機器級程序使用的存儲器地址是虛擬地址,存儲器系統的實際實現是將多個硬件存儲器和操作系統軟件組合。操作系統負責管理虛擬地址空間,將虛擬地址空間翻譯成實際處理器存儲器中的物理地址。
2.IA32
(1)數據傳送指令
(2)算數和邏輯操作指令
(3)控制指令
3.函數指針
格式: datatype (*pFunction)(argumentslist),pFunction是函數指針。
4.GDB調試命令
5.對抗緩衝區溢出攻擊
(1)棧隨機化:使棧的位置在程序每次運行時都有變化
(2)棧破壞檢測:在棧中任何局部緩衝區與棧狀態之間存出一個特殊的哨兵值,在恢復寄存器狀態和從函數返回之前,程序檢查這個哨兵值是否被該函數的某個操作或者該函數調用的某個函數的某個操作改變了。如果是則程序異常中止。
(3)限制可執行代碼區域