我想知道在運行該文件之前或之後在.exe文件上生成校驗和時是否會得到不同的結果。我更關心常見的做法(比如像firefox.exe那樣生成流行應用程序的SHA哈希),而不是邊界情況,但兩者都很有趣。謝謝。散列的.exe文件
1
A
回答
7
只要文件是相同的(即僅包含相同的字節,以相同的順序),文件的散列應該是恆定的。很難找到在運行時重寫磁盤表示的應用程序,所以散列應該是是恆定的。有自我修改的程序,但它們傾向於在內存加載的代碼副本上運行,而不是磁盤副本。
編輯:我們應該考慮「自我更新」應用程序,但這些應用程序往往會啓動一個小幫手程序來下載和更新核心應用程序。在運行時更新執行很困難(特別是在Windows上)。 UNIX系統傾向於在寫入系統上運行復制,所以軟件更新可能會改變腳下的可執行文件 - 但這又是一個「角落案例」。
2
只有當exe改變時,散列纔會改變。這隻會發生,如果應用程序修改自己,這是不會在沒有應用程序重新啓動的窗戶上發生。 Firefox可能會自行更新(包括重新啓動),但除了這些情況之外,哈希將保持不變。
2
如果文件更改,散列值將會改變。
EXE文件很少會自行更改。如果用戶更新到新版本,則會更改firefox.exe
。
運行後可以檢查EXE文件(如firefox.exe
)的「修改日期」屬性是否已更改,但您可能會發現它沒有更改。
1
如果您的意思是修改上次訪問時間,請不要擔心,它存儲在文件系統級別,而不是在文件中,因此散列保持不變。
相關問題
- 1. 如何在signtool.exe中將散列嵌入到exe文件中
- 2. 從文件的散列導出文件的散列
- 3. c#散列和php MD5文件/文件夾散列不一樣
- 4. windows的exe文件exe文件
- 5. md5/sha1散列大文件
- 6. 斯卡拉文件散列
- 7. mysql /文件散列問題
- 8. 使用python散列文件
- 9. 散列磁盤映像中單個文件的散列計算
- 10. Excel文件exe(xls到exe)
- 11. 中的.exe文件
- 12. 陣列傾銷散列文件
- 13. 如何使用漩渦散列檢查文件散列?
- 14. 當我用Md5散列文件什麼是散列?
- 15. 如何散列/取消散列數據文件?
- 16. .exe文件?
- 17. assning文件的第一列到散列鍵,其餘的散列值
- 18. 散列散列的紅寶石散列
- 19. 小文件的散列算法
- 20. perl修改子文件中的散列
- 21. 散列文件中的每個單詞
- 22. python中的散列表由文件
- 23. 這是什麼樣的散列文件?
- 24. 將txt文件讀入perl的散列
- 25. 使用sed散列文件的部分
- 26. 遠程安裝/部署的MSI/EXE文件:微星/ EXE文件
- 27. 將.cpp文件編譯爲Program(exe)裏面的.exe文件?
- 28. 散列的md5散列
- 29. 打開一個文本文件作爲散列並在該散列內搜索
- 30. serialPort_DataReceived不exe文件
此類exe文件的磁盤上修改可能會被任何病毒檢查程序標記爲「病毒樣」行爲。 – 2009-09-14 22:41:16
exe文件本身是否會有組件或「資源」,比如說包含可能因運行exe而改變的配置數據? – Brian 2009-09-14 22:50:39
@布萊恩,通常不會 - 配置數據幾乎總是單獨存儲 – bdonlan 2009-09-14 23:19:26