關於
項目地址:https://github.com/obfuscar/obfuscar
官方介紹:Obfuscar is an open source .NET obfuscator released under MIT license. It provides basic obfuscation features that help secure secrets in a .NET assembly.
效果圖:
官方文檔:https://docs.obfuscar.com/
混淆原理
基本上,Obfuscar 對一組程序集中的元數據進行加擾。給定簽名和類型信息,它將所有內容重命名為可用於識別它們的最小名稱集。由於這些新名稱比舊名稱短,因此它也大大縮小了可執行文件的大小。
以下方法來自版本中包含的示例:
public ExampleUI( ) { InitializeComponent( ); ClassX cx = new ClassX( "Some Text" ); displayText.Text = cx.DisplayText; }
代碼可以被反編譯(通過ILSpy):
public ExampleUI() { this.InitializeComponent(); this.displayText.Text = new ClassX("Some Text").get_DisplayText(); }
混淆后,代碼可以被反編譯(通過 ILSpy):
public A() { this.A(); this.a.Text = new A.A("Some Text").A(); }
這是一個簡單的例子,但它可以擴展……例如,給定一個合理大小的代碼庫,可以很容易地運行到一個名為 A 的類(在命名空間 A 中),它有 7 個方法、4 個屬性和 5 個名為 A 的字段,還有更多名為 a 的方法、屬性和字段。
謝謝瀏覽!