背景
如果有學過彙編,那麼通路記憶體将不是一件難事,因為彙編要求你熟悉每一個記憶體子產品,每一個記憶體位址。我記得當初上彙編的第一節課,老師就說彙編如果不懂的,直接debug那個位址,在指令控制台裡找出那個位址對應的數值。今天我們講的通路固定的記憶體位置也是使然,想成為頂尖的程式員,就必須對每一句代碼裡的每一個記憶體了然于胸。
面試題目
在某工程中,要求設定一絕對位址為0x67a9的整型變量的值為0xaa66。編譯器是一個純粹的ANSI編譯器。
相信大部份人都有看過這道題目,建議的代碼如下
我不知道有沒有人親自去敲敲這代碼,反正我敲了,代碼是有問題的(可能我的不是ANSI編譯器,又或者這不是一塊有效的位址,當然修改記憶體也是一個比較危險的事,作為一名黑客,或者逆向人員就常幹這事)
很明顯,這塊記憶體是不允許被寫入的,也就是這塊位址是不被更改的。
網上還提到一種晦澀的方法