C#/.Net寫的軟件怎么保護其版權?
前言
首先,對于這種托管的代碼。沒有100%的保護措施,甚至50%概率上的保護措施都沒有。在二進制層面尚且沒有,可以針對性的對于指令集(Risc-v/Arm64/x64/Loongarch64)反匯編逆向重構。對于托管而言更是沒有的。能做的只能是有限度的保護。
概括
20年前,.Net剛誕生的時候有個笑話。有人嘲諷微軟做托管代碼,是為了方便別人破解。事實證明,托管確實比非托管更容易破解和篡改。MSIL遵循了一整套的ECMA-335的規(guī)范,對于這個規(guī)范了如指掌的程序開發(fā)人員來說,托管代碼就像紙糊的一樣,戳哪兒哪兒就破。
但是對于現(xiàn)狀來說,大部分碼農(nóng)都是在底層拼命的Curd。無暇或者沒有能力去研究更高深的技術,所以一般只需要在ECMA-335的規(guī)范上面做一點點手腳就可以防住大部分人。
如果再在Roslyn/CLR/JIT/ILC/BootStrap/Obj/Exe上面做點點手腳,那么防住99%的Curd工程師不在話下,除非你的軟件有極大的價值值得去破解和逆向。否則基本上無較大問題。
目前市面上流行的.Net加殼軟件大致有如下:
Dotfuscator:Visual Stuido自帶的,你可以自己去安裝使用。安全性低級。
dotNET Reactor:官方宣傳:無與倫比的.NET代碼保護系統(tǒng),可完全阻止任何人反編譯您的代碼。個人認為的安全性中下。
ILProtector:可保護您的 .NET 代碼免受逆向工程、反編譯和修改。安全性中級。
Axprotect:老外的商用產(chǎn)品,可以保護托管和非托管。安全中級。
EXECryptor:高強度加殼的軟件,安全性中上級。
Xenocode Fox:反編譯工具,混淆工具,安全性低級。
Vmproject:能夠混淆和加密JIT,CLR等內(nèi)存級的工具,而且它混淆之后的代碼執(zhí)行在非標準體系結構的虛擬機上,非常牛掰。安全性高級。
以上是托管和非托管的加密工具,工具各異,可自行參考。