LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

探究 .NET程序开发的代码混淆/加壳

admin
2025年8月25日 8:36 本文热度 104

前言


先查询一下常见的加壳工具:

  • DotFuscator,官方自带,据说免费版混淆程度不高

  • Virbox Protector,很好很优秀,但是收费

  • NET Reactor,可能会被识别为病毒

  • Obfuscar,开源,可以用dotnet tool或项目构建的方式进行使用

那就先用Obfuscar试试水。

正文

方式一:nuget安装

推荐,这种方式可以针对性下载各.net版本对应工具包

1、在项目中使用nuget安装obfuscar

2、在项目根目录下找到packages\Obfuscar.2.2.38\tools,将Obfuscar.Console.exe拷到要加密文件的文件夹中

3、新建一个Obfuscar.xml 文件放到相同目录下,内容如下:

<?xml version='1.0'?>
<Obfuscator>
  <Var name="InPath" value="." />
  <Var name="OutPath" value=".\Obfuscar" />
  <Var name="KeepPublicApi" value="true" />
  <Var name="HidePrivateApi" value="true" />
  <Var name="HideStrings" value="true" />
  <Var name="UseUnicodeNames" value="true" />
  <Var name="ReuseNames" value="true" />
  <Var name="RenameFields" value="true" />
  <Var name="RegenerateDebugInfo" value="true" />

  <Module file="$(InPath)\Logic.dll" />

</Obfuscator>

下图中,Logic.dll是要加密的类库:

​4、用命令提示符cmd进入到目录下(可以在cmd里用cd指令跳转,也可以直接打开目标文件夹,然后在上方的文件路径那里直接替换成cmd后enter)

5、执行>Obfuscar.Console.exe Obfuscar.xml

6、在生成的Obfuscar文件夹中可以找到被加壳后的同名Logic.dll

上述得到的Logic.dll即可被其他项目直接引用,加密后类似:

方式二:dotnet tool(.net 6)

1、新建一个Obfuscar.xml 文件放到类库所在目录,内容如下:

<?xml version='1.0'?>
<Obfuscator>
  <Var name="InPath" value="." />
  <Var name="OutPath" value=".\Obfuscar" />
  <Var name="KeepPublicApi" value="true" />
  <Var name="HidePrivateApi" value="true" />
  <Var name="HideStrings" value="false" />
  <Var name="UseUnicodeNames" value="true" />
  <Var name="ReuseNames" value="true" />
  <Var name="RenameFields" value="true" />
  <Var name="RegenerateDebugInfo" value="true" />
  <Module file="$(InPath)\PlanManager.dll" />
  <Module file="$(InPath)\MapManager.dll" />

  <AssemblySearchPath path="C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\6.0.9\" />
  <AssemblySearchPath path="C:\Program Files\dotnet\shared\Microsoft.NETCore.App\6.0.9\" />
</Obfuscator>

其中,Module对应填入想要加壳的类库,可以添加多行,AssemblySearchPath根据自己.net的路径进行配置。

2、在cmd中进入到上述目录中,执行命令:dotnet tool install --global Obfuscar.GlobalTool

3、在cmd中执行命令:obfuscar.console Obfuscar.xml

4、在上述目录中找到自动生成的Obfuscar文件夹,加壳后的类库就存放在里面,拷贝出来即可使用。

PS:.net6的带WebAPI的exe好像加壳失败,待测试。

方式三:项目构建

1、在csproj 项目文件中添加安装Obfuscar的代码:

<ItemGroup>
  <PackageReference Include="Obfuscar" Version="2.2.33">
    <PrivateAssets>all</PrivateAssets>
    <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
  </PackageReference>
</ItemGroup>

2、在项目中添加一个Obfuscar.xml 文件,内容跟方式一的类似,再在csproj 项目文件中设置更新

<ItemGroup>
  <None Update="Obfuscar.xml">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </None>
</ItemGroup>

3、在csproj 项目文件中设置自动构建

<Target Name="ObfuscarTask" AfterTargets="AfterBuild">
  <PropertyGroup>
    <ObfuscateCommand>$(Obfuscar) "Obfuscar.xml"</ObfuscateCommand>
  </PropertyGroup>
  <Exec WorkingDirectory="$(OutputPath)" Command="$(ObfuscateCommand)" />
</Target>

PS:这种方式还没测试过,待测试

转自:MaQaQ

链接:cnblogs.com/magicMaQaQ/p/17702951.html

- EOF -


阅读原文:原文链接


该文章在 2025/8/25 13:04:12 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved