2011-07-26 32 views
3

在我的.NET應用程序中,我必須使用許可證密鑰「驗證」我的程序到庫。
但是,每個偷看到我的程序集的人都可以獲得密鑰...
這並不影響我,但我確實在意圖書館的創建者。
我不希望「泄漏」他/他的鑰匙,並導致他/他們像這樣的損失...保護我的.NET應用程序中的字符串?

是否有任何免費的工具,我可以用來保護我的數據?
我真的不關心其他代碼...關鍵是重要的。

+0

您是否爲該服務付費?然後我可以看到這個問題。爲什麼你應該付錢讓其他人可以免費獲得。您是否必須註冊才能獲得免費的唯一許可證密鑰?然後我猜想這並不壞,但他們不知道所有人都在使用許可證密鑰,並且如果他們發現他們認爲是濫用的話,他們可能會取消您的帳戶。許可證密鑰對每個人都一樣嗎?那會很奇怪,但是如果其他人得到了它並不重要。 :)我只是好奇你的情況是。 –

+0

付費,它可能會被取消,所以我不想冒險。 – Vercas

回答

4

如果你必須把它傳遞到圖書館,如果你不控制圖書館,那麼你不能做太多。你可以混淆你的代碼來阻止Reflector用戶(但不是Reflector VSPro,至少不容易),我只是用Crack.NET來窺探內存並從那裏抓取它。

圖書館創建者的職責是提供一個安全的機制,例如,使用公鑰/私鑰,SecureString,DPAPI或要求網絡電話將密鑰存儲在服務器上。

0

Dotfuscator可以爲您做到這一點。我相信它與Visual Studio打包在一起 - 查看它。

雖然我不用擔心,如果你不是他們唯一的客戶,那麼其他人可能會通過未經模糊處理的代碼泄漏許可密鑰,從而浪費時間。

+3

看起來像可怕的建議。僅僅因爲其他公司可能會忽視安全,他應該完全忽略它呢? – Dismissile

+0

這根本不是安全問題。而且由於他不需要爲了保護自己的知識產權而走出困境,這不是他的問題。 –

+0

@Brian Gordon你是對的......但如果我至少試圖保護他們的IP,它不會受到傷害...... – Vercas

0

老實說我不會在乎它。如果在某個時候需要將參數傳遞給該庫中的某個關鍵字,那麼無論您嘗試對其進行混淆都沒有關係,有人偷窺您的代碼最終會找到關鍵字。只是責備圖書館的供應商:)

+0

我同意這是他們的錯,不是我的......但我能做些什麼呢? – Vercas

1

我可以回想的唯一方法是dotnetfuscator爲ubfuscating代碼,但這是不是免疫專家的逆向工程。主題是一個痛點爲C#開發人員要做到這一點是不使用.NET(這是沒有答案的話)

的唯一途徑有在question 211849

0

另一種產品做這等事:SmartAssembly從展鵬(雖然不是免費的)...

沒有絕對的安全性 - ESP。與JITted代碼(如IL/.NET和Java)...

雖然要小心字符串常量 - 它們需要替換爲「static readonly」字符串......否則它們不能被「模糊/加密」。 ..

+0

那麼,我將許可證密鑰字符串寫入本地變量中。它只需要激活一次。 – Vercas

0

我有同樣的情況。密鑰存在於我的代碼中。我不會混淆代碼。我想這是因爲我的大部分用戶不是程序員,也不知道如何反編譯代碼並獲取關鍵字。如果我擔心,那麼我想我會混淆如上建議

0

我會用不同的方式來看待這個。

如果圖書館需要許可證進行驗證;那麼你有沒有合適的許可證來分發你的應用程序庫?

如果是這樣,那麼我會說它是由圖書館提供商給你說明如何妥善保護密鑰。

否則,盡你所能用代碼混淆器做到最好。

+0

是的,它確實需要許可證進行驗證,並且我擁有合適的許可證才能將該庫分發到我的應用程序中。該庫最初並不打算在.NET中使用,但它確實帶有一個.NET包裝器。 – Vercas