緩沖區數據淹沒情況有以下這些:
淹沒了其他的局部變量。如果被淹沒的局部變量是條件變量,那么可能會改變函數原本的執行流程。這種方式可以用于破解簡單的軟件驗證。
淹沒了ebp的值。修改了函數執行結束后要恢復的棧指針,將會導致棧幀失去平衡。
淹沒了返回地址。這是棧溢出原理的核心所在,通過淹沒的方式修改函數的返回地址,使程序代碼執行“意外”的流程。
淹沒參數變量。修改函數的參數變量也可能改變當前函數的執行結果和流程。
淹沒上級函數的棧幀,情況與上述4點類似,只不過影響的是上級函數的執行。當然這里的前提是保證函數能正常返回,即函數地址不能被隨意修改。
回答所涉及的環境:聯想天逸510S、Windows 10。
緩沖區數據淹沒情況有以下這些:
淹沒了其他的局部變量。如果被淹沒的局部變量是條件變量,那么可能會改變函數原本的執行流程。這種方式可以用于破解簡單的軟件驗證。
淹沒了ebp的值。修改了函數執行結束后要恢復的棧指針,將會導致棧幀失去平衡。
淹沒了返回地址。這是棧溢出原理的核心所在,通過淹沒的方式修改函數的返回地址,使程序代碼執行“意外”的流程。
淹沒參數變量。修改函數的參數變量也可能改變當前函數的執行結果和流程。
淹沒上級函數的棧幀,情況與上述4點類似,只不過影響的是上級函數的執行。當然這里的前提是保證函數能正常返回,即函數地址不能被隨意修改。
回答所涉及的環境:聯想天逸510S、Windows 10。