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