2010-08-19 80 views
1

我正在創建一個包含多個DLL的應用程序,並認爲我可以在運行時調用Assembly.GetPublicKey()並查看DLL是否由我簽名。但是,現在我看到Assembly上有一個SetPublicKey 方法。難道它不容易讓任何人欺騙我的DLL嗎? 或者我檢查錯誤的方式的DLL的簽名?.net程序集安全問題

更新:我有一個插件架構,我只是試圖通過編寫自己的DLL來防止某人劫持我的應用程序。

+0

[檢查一個組件,其用於強名稱]的可能重複(http://stackoverflow.com/questions/308756/checking-an-assembly-for-a-strong-name) – 2010-08-19 16:27:39

回答

0

不大可能是建議的路線,但我爲我的DLL做的是創建一個類並傳遞一個私鑰到它來激活它。

VAR secureClass =新MyDLL.SecureClass( 「密碼」)

然後在裏面SecureClass任何方法我稱之爲之前我提出的任何代碼如下:

如果IsActivated()= false,那麼 Alert_Not_Active( ) 返回假 結束如果

也許有更好的選擇,但這對我來說很完美。如果它非常重要,請確保使用像{Smart Assembly}這樣的應用程序來保護您的代碼免受反射編碼