2009-12-19 34 views
0

我知道不可能通過破解真實世界的軟件來100%保證。但我只想保護我的產品免受未經授權的普通用戶訪問。在.Net Assembly中使用公鑰標記來保護產品免於破解的最佳方法是什麼?

.Net框架具有強類型名稱的功能,可用於保護軟件,因爲您可以指定要裝入的組件和公鑰標記。

那麼,通過使用公鑰令牌防止產品破解的最佳方法是什麼?

+0

使用ngen生成二進制文件? – 2009-12-19 16:04:22

+0

我不確定創建新程序集有什麼技巧,但我認爲可以做到這一點。 – 2009-12-20 01:03:02

+1

我會得出一個結論:公鑰在這裏沒用。而且你對於想要給出另一個答案的解決方案模糊不清。 – 2009-12-20 11:17:13

回答

1

強命名的目的是確保當您加載程序集時,您正在加載您認爲正在加載的程序集。因此,如果您使用全名System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL加載程序集,強名稱將確保您加載該程序集,並且某個邪惡公司尚未將其他程序集滑入其中。強名稱不會幫助您防止未經授權訪問您的軟件。

+0

我知道。但是如果你有一些引擎來加載指定的程序集,你可以管理你的應用程序來加載或不需要其他代碼,並且不可能創建具有相同公鑰令牌的僞裝配。所以它應該會讓你的應用程序很難被破解或濫用。 – 2009-12-19 12:52:54

+0

當我想到關於軟件的「裂縫」這個詞時,我想到了繞過安全措施來保護軟件。如果有人擁有應用程序副本和期望的程序集副本,則強命名中不會有任何內容阻止他們複製這些文件併爲其提供其他內容。這不是強名稱要解決的問題。 – jason 2009-12-19 13:11:07

+0

強命名可能會根據計算機ID或來自用戶機器的其他唯一信息生成。所以,你不能複製和粘貼到其他機器上運行。 – 2009-12-19 13:24:42

相關問題