2011-01-10 26 views
0

我有一個可執行文件(說notepad.exe)。我正在嘗試爲這個可執行文件創建一個函數圖。所以當我運行這個可執行文件時,它會被加載到某個地址(模塊的基址)。現在每個函數都會在模塊內部有一些偏移量。我嘗試通過模塊內的偏移量(函數的代碼開始處)來唯一標識每個函數。你認爲這個抵消總是保持不變,不管在哪臺機器上運行可執行文件?模塊內部的函數偏移是否始終保持不變?

+0

我不清楚什麼是加載什麼。請澄清。除此之外,最終目標是什麼? – jweyrich 2011-01-10 04:13:25

+0

@jweyrich:我的意思是這個過程被加載到內存中。我真的不知道誰加載它。最終目標是通過偏移來唯一標識程序中的每個函數。 – Bruce 2011-01-10 04:27:25

回答

1

自從Vista以來,Windows已經擁有了一種稱爲地址空間佈局隨機化的特性,其中可執行文件的基礎位於隨機起始地址處。目標是阻止某些類型的安全攻擊。目前,沒有內部的函數隨機化發生,但沒有什麼能夠防止在新版本的Windows中發生。