簡體   English   中英

如何使用 C# 檢查文件哈希值是否已更改

[英]How to check if file hash has changed with C#

我是一個游戲開發者,當我發布一個新游戲時,BOOM!!!,那個游戲將被修改,我正在運行網絡游戲,這對我來說是巨大的損失,我正在用 Unity 制作游戲,希望你們能理解我,我想將 HashCheck 添加到游戲主文件中,例如“如果文件哈希更改,游戲,關閉”

就像:- 我有 Assembly-CSharp.dll 作為我的主要游戲數據文件,所以如果 Modders 想要修改我的游戲,他們只會將 Assembly-CSharp.dll 加載到一些反編譯器中並編輯文件

我也嘗試過“HEX”保護,但他們繞過它

所以,我想制作,當 Modders 更改 Assembly-CSharp.dll 時,哈希值將更改,如果 Hash 更改為“Application.quit”

我只是想比較 MD5 哈希

但我沒有得到,即使是示例代碼

我只需要在 Assembly-CSharp.dll 中添加 HashCheck 的代碼

意味着我需要 C# 代碼

聽起來像 強名稱程序集簽名可能對您有所幫助。

其中,強命名程序集的一個好處是它們 使用數字簽名進行簽名,從而 保護程序集不被篡改 如果有人要修改您的程序集,程序集加載期間自動發生的驗證過程將失敗並拋出異常。

強名稱提供了強大的完整性檢查 [...] [,保證] 程序集的內容自構建以來未被更改。

取自docs.microsoft


在此處閱讀有關如何使用強命名的更多信息。


編輯

正如toATwork所提到的,強命名在這里沒有好處 強命名確保您的用戶您的程序集確實來自您,並且未被其他人修改。

想要修改您的程序集的用戶不會被阻止篡改您的程序集!

由於哈希檢查也很容易被繞過,我建議將混淆與篡改檢查結合使用 您可以使用已包含在 Visual Studio 中的Dotfuscator。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM