《DotNet Web應用單文件部署系列》三、混淆dll文件


        眾所周知,C#編譯后的dll文件可被反編譯,網上搜索”C# 反編譯”會出現一大堆資料。為了提高反編譯成本,我們必須對dll文件進行混淆處理。

 

        目前,C#混淆工具很多,我推薦obfuscar,它是一款免費開源的混淆工具,配置簡單,支持命令行。

一、 從Github上下載Obfuscar。

  Obfuscar源碼:https://github.com/obfuscar/obfuscar

 

二、 編譯生成GlobalTools。

  

       我還是比較喜歡單文件。

 

三、 編輯xml文件

<?xml version='1.0'?>
<Obfuscator>
  <Var name="InPath" value="F:\yourpath\bin\Release\net5.0" />
  <Var name="OutPath" value="F:\yourpath\libs" />
  <Var name="KeepPublicApi" value="false" />
  <Var name="HidePrivateApi" value="true" />
  <Module file="$(InPath)\ToolGood.TextFilter.App.dll">
    <SkipField type="PetaPoco.Core.PocoData" attrib="public" name="_converters" />

    <SkipType name="ToolGood.TextFilter.Application.HtmlFilterApplication" skipMethods="true" skipFields="false" skipProperties="false" skipEvents="false" />
    <SkipType name="ToolGood.TextFilter.Application.JsonFilterApplication" skipMethods="true" skipFields="false" skipProperties="false" skipEvents="false" />
    <SkipType name="ToolGood.TextFilter.Application.MarkdownFilterApplication" skipMethods="true" skipFields="false" skipProperties="false" skipEvents="false" />
    <SkipType name="ToolGood.TextFilter.Application.TextFilterApplication" skipMethods="true" skipFields="false" skipProperties="false" skipEvents="false" />
      ……………………
  </Module>
</Obfuscator>

  Var標簽 InPath 為 輸入目錄。

  Var標簽 InPath 為 輸出目錄。

  Module標簽 為需要混淆的dll文件路徑。

         SkipType標簽,指定不需要混淆的類名,主要做為對接口。

         SkipField標簽,指定不需要混淆的變量名,反射時需要。

  詳情可參考Obfuscar文檔:https://docs.obfuscar.com/

四、 編寫命令行

f:
cd F:\你的項目
F:\混淆工具\GlobalTools.exe 項目.xml

 

五、小彩蛋:js混淆工具

工具地址:https://github.com/toolgood/ug

Js代碼如下:

1 setInterval(function() {
2 
3     debugger
4 
5 }, 100);

壓縮后:

!function(n){!function(n,t,r,u){n[r](function(){},100)}(this,0,n(0,1,2,3,4,2,1,5,6,7,8))}(function(n){return function(){for(var t=arguments,r="",u=0,f=t.length;u<f;u++)r+=n[t[u]];return r}}(["s","e","t","I","n","r","v","a","l"]));

 

注:js混淆工具不支持es6語法,如let。

 

后記:

       最近忙於編寫SQL online軟件,一款主打數據安全的軟件,防登錄信息被記錄、傳輸加密、水印、IP黑名單、機器碼、SQL記錄、記錄update/delete 修改前數據等等。

  SQL online:https://github.com/toolgood/ToolGood.SqlOnline

 

       Layui官網要關了,挺難過的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM