天天看點

C#加殼工具做代碼加密保護

目前C# .net語言的應用範圍越來越廣泛,IIS 的伺服器架構背景代碼、桌面應用程式的 winform 、Unity3d 的邏輯腳本都在使用。C# .net 具備強大的便捷特性,使得開發成本極低。而作為一款.net 語言,也有它讓開發者頭疼的弊病——非常容易被反編譯。市面上的 Dnspy, ILspy,de4dot等工具可以非常容易反編譯出被混淆保護的C# .net 程式。

解決方案

深思自主研發了為 C# .net 語言做保護的外殼:Virbox Protector .NET版。将C# .net 編譯成的執行程式(.exe),動态庫(.dll)直接拖入加殼工具即可完成保護操作,十分友善。并且在效果上已經完全看不到源碼中的邏輯。 

Virbox Protector加密功能介紹

名稱混淆(.NET)

将 .net 的方法名類名使用随機字元串重新命名,導出和外部的名稱不會改變。

保護效果圖

保護前,如圖所示:

C#加殼工具做代碼加密保護

保護後,如圖所示:

C#加殼工具做代碼加密保護

壓縮

Virbox Protector 的壓縮功能,其核心目的不是“壓縮”,并非專為縮小程式體積而設計的。它真正的作用是将代碼與資料段做了加密,并将原先的導入表與重定位資訊隐藏了起來,再”順便“将原先的資料做了壓縮。

原理

将原始的代碼段與資料包打包并壓縮,将原始程式入口(OEP)替換為殼代碼,運作時由殼代碼将代碼段與資料段還原,并進行一些重定位等操作,使程式能正常運作。

功能

防止靜态反編譯,防止程式被打更新檔。

優點

1、能起到一層整體保護效果,可以隐藏程式的代碼、資料和檔案結構資訊。

2、運作效率高,僅在程式被加載時輕微的性能損失。

C#加殼工具做代碼加密保護
C#加殼工具做代碼加密保護

去除強簽名

1、強名稱(StrongName)使.NET提供的一種驗證機制, 主要包括辨別版本和辨別原作者。

2、強名稱可以用來幫助使用者驗證自己得到的程式是否為原作者所寫切沒有被修改(例如添加惡意代碼), 跟自校驗有點類似。

3、是以添加了強名稱的程式加殼時要去除強名稱, 并在加殼後重新添加強名稱。

函數級保護-代碼加密

代碼加密是使用動态代碼技術,将原始方法位元組碼加密,執行時才将方法解密并執行的保護方式。

防脫殼,防止直接 Dump。

1、運作效率高,幾乎沒有性能損失。

C#加殼工具做代碼加密保護
C#加殼工具做代碼加密保護

代碼混淆

代碼混淆亦稱花指令,是将計算機程式的代碼,轉換成一種功能上等價,但是難于閱讀和了解的形式。

Virbox Protector 支援對 x86/arm/.net il 系列指令進行混淆。

擾亂原始指令,防止靜态分析。

1、防反編譯。

C#加殼工具做代碼加密保護
C#加殼工具做代碼加密保護

了解更多

 ​

繼續閱讀