我試着下載一個已簽名的可執行文件 (http://live.sysinternals.com/procexp.exe) 並對其進行修改。我認爲它不能完成,Windows會以某種方式阻止我運行它(或者至少警告我)。但是,當我更改單個字符(例如在DOS存根或任何其他文本數據中)時,它仍然可以運行。我可以更改已簽名的可執行文件
在修改之前,當我運行這個應用程序時,它會出現UAC警告,顯示它已簽名Microsoft並詢問是否要運行它。修改後,沒有這樣的事情。即使我恢復變化,它仍然不會顯示出來。我將修改和恢復的可執行文件與原始版本(總共命令)進行了比較,結果顯示沒有區別。但原來仍然飛濺UAC。
這是爲什麼?
我使用的是Windows 7和Firefox。
你是什麼意思的文件被標記爲從網上下載?我想這是事實。 我試過改變隨機值,保存文件並將其更改回原始。到目前爲止,我還沒有運行該程序。所有更改恢復後,我運行它,即使簽名有效,它也不顯示彈出窗口。 所以我想它以某種方式將文件的「下載」狀態更改爲「由用戶創建」或其他。這種信息存儲在哪裏?什麼是程序清單? 但是,無論如何感謝 – Samuel
當你從互聯網下載文件時,一些瀏覽器(當然是第一個)在它上面存儲一個標誌。你可以在文件屬性對話框* General *標籤中看到它。*屬性*下會有* Security *行,其中聲明「此文件來自另一臺計算機,可能被阻止以幫助保護此計算機」。您還會在右側看到* Unblock *按鈕。搜索'應用程序清單',你就會知道它是什麼。您確定數字簽名在修改文件兩次後仍然有效嗎?我真的懷疑它。 –
你說得對,它確實是解鎖按鈕。它在下載的文件上。複製此文件後,它仍保留在副本中。如果我更改文件,它會消失。如果我將其更改回正常狀態,則不會再顯示。我會搜索清單並讓你知道。 關於數字簽名 - 這是一個特定的散列。所以,如果你改變了一些東西然後恢復改變,它就和原來的哈希一樣(兩個文件都是一樣的:)),數字簽名將是有效的。其目的不是爲了防止變化。這是爲了找到差異。 – Samuel