dotNET Reactor 是一款優(yōu)秀的用于.NET程序集的加密加壓混淆器,正是它本身加密性也很好,所以一直還沒有人對(duì)它漢化過,不過2.6.4版還可以用NETUnpack脫殼。
dotNET Reactor 是一款強(qiáng)大的 .NET 代碼保護(hù)和授權(quán)管理系統(tǒng),安全可靠、簡單易用,主要用來幫助開發(fā)人員保護(hù)他們的 .NET 軟件產(chǎn)品。開發(fā)人員從此不必?fù)?dān)心如何保護(hù)他們的知識(shí)產(chǎn)權(quán),可以將更多精力放在產(chǎn)品功能的開發(fā)上。
與代碼混淆工具(Obfuscator)相比,.NET Reactor 可以完全阻止對(duì) .NET 程序集(由 C#, VB.NET, Delphi.NET, J#, MSIL… 等語言編寫)的反編譯。通俗的講,.NET Reactor 在破解者和您的 .NET 代碼之間構(gòu)建了強(qiáng)大的防破解保護(hù)屏障,生成一個(gè)基于 Windows 的而不是基于MSIL 的兼容格式文件。原始的 .NET 代碼完整的封裝在本地代碼內(nèi),無論何時(shí)都不會(huì)釋放到硬盤,對(duì)于破解者是不可見的,目前還沒有任何工具可以反編譯 .NET Reactor 保護(hù)過的程序集。
.NET具有較多的優(yōu)點(diǎn),如:標(biāo)準(zhǔn)集成,簡化應(yīng)用,對(duì)移動(dòng)設(shè)備的支持等。但使用.NET編寫的程序有個(gè)致命的缺點(diǎn):易被反編譯,且運(yùn)行時(shí)占用較大的資源。
如在開發(fā)中需要修改一個(gè)dll文件(.NET程序集)中某些地方的類型名稱,但沒有源代碼,只能修改IL代碼。
.NET程序反編譯:
1. 運(yùn)行ildasm是由微軟提供的.NET程序反編譯工具,位于“C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\”。
2. 用ildasm打開要修改的程序集,如下圖:
3. 通過ildasm轉(zhuǎn)儲(chǔ)保存為IL文件.--選擇菜單File>Dump,選擇UTF-8編碼,如下圖:
4. 用文本編輯器打開第3步中得到的.il文件,如下圖:
5. 修改.il文件中的代碼并保存
6. 用ilasm(MSIL匯編程序)將.il文件編譯為.dll文件
ilasm位于相應(yīng)的.NET Framework目錄中,比如:C:\Windows\Microsoft.NET\Framework\v2.0.50727\ilasm.exe
在命令行中執(zhí)行下面的命令:
ilasm 源文件.il /output=目標(biāo)文件.dll /dll
7. 完成。
因此,為了更好的體現(xiàn).NET的優(yōu)勢(shì),我們必須對(duì)在.NET下編寫的程序進(jìn)行優(yōu)化;與此同時(shí),為了所編程序不被反編譯,必然要實(shí)施有效可行的安全策略。