第1454章
正常情況下,英特爾處理器不會出問題,但是,就怕有人故意帶節奏!
編寫一段循環程序,按照英特爾處理器的邏輯,那肯定是重複執行的,前麵的執行沒有問題,直至第N條!
這一條在進入處理器之前,並沒有權限審核,就被指令預測給送到了某個對應的位置,然後,這第N條並不是預判中的重複執行的程序,而是其他的......這個時候,指令預測功能出錯,會把這第N條根據需要跳轉到其他地方!
什麼地方?
那就得按照這條指令來了,比如說,這條指令要求讀取內存某個模塊的數據,例如鍵盤緩衝區,是否就意味著能讀取到用戶之前輸入的密碼?
在原本的設計中,用戶是不能讀取這些模塊的,但是隻要利用這個亂序執行和指令預測功能,就可以非法讀取到內存核心的數據!
至於數據返回?
處理器在返回數據的時候,是要進行檢查的,非法讀取的核心數據,並不會返回到處理器外部,但是......這個完全可以在N+1條指令上做手腳,給這N+1條指令下達的命令,就是把這些數據輸出出去!
等到指令執行完畢才會檢查,但是這個時候,數據已經出去了!
所以,英特爾在95年為了提升處理器效率而增加的兩種功能,導致了一個龐大的漏洞,不,一係列龐大的漏洞!
在後世,這些處理器的漏洞反複被利用,構成了大量的惡意攻擊,比如惡意數據緩存載入漏洞,名稱熔毀,繞過邊界檢查漏洞,名稱幽靈一號,分支目標注入漏洞,又叫做幽靈二號......