我有以下情形的源代碼編譯:
我需要動態編譯在客戶端機器的組件,所以目前我正在與我的主可執行沿部署的組件的源,然後使用的MSBuild到將源代碼動態編譯爲程序集。
由於我不想公開分發我的源代碼以及應用程序,我正在考慮運送加密的源文件,然後在構建之前在客戶端機器上解密它。但即使在這裏,任何人都可以在解密點後停止執行,並且在編譯和刪除源代碼之前,我的源代碼將在那裏解密。
有沒有一種方法可以保護我的來源,同時在客戶位置進行編譯? PS:我知道最好不要再擔心源代碼被盜,但我也不想讓它很容易地被腳本小子使用。
編輯:我可能需要一個混淆工具源代碼轉換成混淆代碼(不混亂組裝)。然後,我可以將這個混淆代碼與我的應用程序一起發佈,然後即時編譯它。動態解密和
Q
動態解密和
0
A
回答
1
你可以利用Obfuscation(Obfuscation in .NET),這基本上會讓你的代碼難以理解爲人類的讀者。
如果仍然不能爲您解決問題,那麼您可以考慮將您的邏輯創建爲Web服務,然後您只需公開您的API而不是整個解決方案。這就是說,這很可能最終會成爲更多的工作,因爲你將不得不創建一個將消耗你的Web服務的客戶端應用程序。
編輯: 根據你的評論,你可能想看看this MSDN頁面展示瞭如何可以混淆處理通過調用Dotfuscator
自動化。這應該隨你的IDE自由發佈。就我而言,我有一個MSI文件(我想你需要先安裝它)位於:{VS2010 ISO}\WCU\Dotfuscator\DotfuscatorCE.msi
1
隨機建議:
對於稍微隱藏代碼,你可以把它嵌入的資源投入到你的組件和之前保存編譯。
作爲額外的步驟,您可以保存爲IL而不是C# - 可能會更痛苦,但難以閱讀(特別是如果您使用IL的混淆代碼)。
或者使用CodeDOM或IL構建器直接從代碼創建程序集。
事實上,這可能是更好的重新組織代碼,這樣你就不會需要包括你的代碼在所有的,只是添加客戶端的代碼...
+0
我確實將其隱藏在資源內,但這不是解決方案。 IL代碼可以輕鬆地反編譯成任何符合CLS的語言。 –
相關問題
- 1. AES加密/解密 - 動態C到C#
- 2. 解析JSON字符串動態密鑰
- 3. 加密和解密
- 4. 加密和解密
- 5. 加密和解密
- 6. 加密和解密
- 7. 加密和解密密碼
- 8. 動態加密
- 9. 動態密鑰
- 10. 加密/解密SQLite數據庫並「動態地」使用它
- 11. AVRdude在VB中動態加密/解密HEX文件
- 12. 彈簧屬性加載 - 動態解密加密屬性
- 13. 動態加密密鑰
- 14. 移動和.net web服務中的加密和解密
- 15. VB.NET加密和解密
- 16. 加密和解密在iphonesdk
- 17. C#加密和解密
- 18. 加密和解密文件
- 19. PHP加密和VB.net解密
- 20. 加密和解密餅乾
- 21. 加密和解密IP
- 22. 加密和解密對象
- 23. php加密和解密
- 24. Android - 加密和解密
- 25. Android AES加密和解密
- 26. PGP加密和解密
- 27. ESAPI加密和解密
- 28. 文件加密和解密
- 29. gpg加密和解密
- 30. ActionScript3和Java加密/解密
對於混淆的一部分,我需要一個免費的工具,它通過提供模糊一個API或命令行,因爲我需要通過代碼來完成。我不知道有任何這樣的混淆器。如果你知道的話,請告訴我。 而我不希望涉及Web服務。 –
@HarshMaurya:我已經更新了我的答案。 – npinti
謝謝,只有一件事,我是否有權將其發送到客戶端計算機? –