2014-07-04 180 views
5

我知道這是一個奇怪的請求,但我需要混淆原始c#源代碼。源代碼混淆

雖然這是一個壞主意,但C#代碼將通過CSharpCodeProvider編譯爲客戶端。有沒有在C#中的任何現有的類混淆源代碼?或者,有沒有第三方圖書館這樣做?

我想過使用Roslyn和手動變量重命名,但我找不到任何有關如何做到這一點的信息。有誰知道如何使用Roslyn重命名變量(並加載解決方案)?

我試過一個手動的語法分析器,它不好。

我到目前爲止所做的:

刪除了所有評論。

刪除所有換行符和空格。

將來自所有不同項目的所有文件放入一個帶有隨機25個字符的字母數字名稱的文件夾中。

添加隨機評論中間代碼行。不會阻止任何人,但讓我頭痛讀取public /*SJKDSJKDJ398sLAjljKKxklw*/int /*SDSDSJCJKIORIO*/ privateServerKey = /*SDKSDKSDFKJSFKJ*/ ...

+0

檢出http://msdn.microsoft.com/en-us/library/system.reflection.obfuscationattribute(v=vs.110).aspx – Prescott

+0

一些更好的解釋:實際的c#源代碼需要被模糊處理,不是輸出組件。 –

+0

你試過和谷歌?因爲這裏已經有不少答案了 – user3036342

回答

3

Bizzare?不可以。有時,必須將可編譯的源代碼發送給第三方,而不能讓第三方輕鬆理解源代碼。我們會同意混淆器不會讓代碼難以理解,但那不是重點。你的房子前門鎖不會阻止任何嚴重的盜賊,但如果你有房子,那麼你不會有一個傻瓜。我們C# Source Code Obfuscator可能做你想做的。

它主要是以安全的方式對標識符進行打亂。代碼庫越大,這就越有效。

它還會剝去空格和註釋以損壞可讀性。它不會在不同目錄之間混洗代碼文件。