我是靠谱客的博主 自觉小丸子,最近开发中收集的这篇文章主要介绍ASP.NET Core搭建多层网站架构【15-扩展之使用Obfuscar混淆加密保护代码】ASP.NET Core搭建多层网站架构【15-扩展之使用Obfuscar混淆加密保护代码】,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

ASP.NET Core搭建多层网站架构【15-扩展之使用Obfuscar混淆加密保护代码】

2020/02/03, ASP.NET Core 3.1, VS2019, Obfuscar 2.2.25

摘要:基于ASP.NET Core 3.1 WebApi搭建后端多层网站架构【15-扩展之使用Obfuscar混淆加密保护代码】
使用Obfuscar混淆加密保护代码,防止他人使用ILSpy等工具反编译查看到源码

文章目录

此分支项目代码

本章节介绍了使用Obfuscar混淆加密保护代码,防止他人使用ILSpy等工具反编译查看到源码,可以一定程度上防护自己的代码

Obfuscar是开源免费的混淆加密工具,支持.NET Framework和.NET Core应用程序,官方网站、github项目地址、官方文档

添加包引用#

MS.WebApi应用程序添加包引用:

<ItemGroup>
  <PackageReference Include="Obfuscar" Version="2.2.25">
</ItemGroup>

添加混淆配置文件#

MS.WebApi应用程序添加xml配置文件,取名为obfuscar.xml:

右击该xml文件属性,选择始终复制到输出目录:

编辑obfuscar.xml配置文件:

<?xml version='1.0'?>
<Obfuscator>
  <Var name="InPath" value="." />
  <Var name="OutPath" value=".Obfuscator_Output" />
  <Var name="UseUnicodeNames" value="true" />

  <Module file="$(InPath)MS.Services.dll" />
  <Module file="$(InPath)MS.Component.Jwt.dll" />
  <Module file="$(InPath)MS.Component.Aop.dll" />
</Obfuscator>
  • 配置的变量值在官方文档-配置中都有写,可以去查阅下
  • 解释下以上我的配置含义:
    • InPath即输入路径,"."表示从当前路径开始找,项目编译完,我会使用CD $(TargetDir)命令跳到当前输出目标目录
    • OutPath即输出路径,输出到当前路径下的Obfuscator_Output文件夹
    • UseUnicodeNames即使用Unicode编码混淆名称,值是true,就是开启该功能
    • var开头的节点都是混淆配置,obfuscar还有好多配置,但是有些配置开启后会影响代码功能,需要自己混淆后再测试一遍功能,以上我的配置不影响代码功能,已经自行测试过了
    • Module file="$(InPath)MS.Services.dll"这行意思就是,将编译完成后输出目录下的MS.Services.dll进行混淆(混淆后会生成在Obfuscator_Output文件夹中)

添加生成事件#

MS.WebApi应用程序中右击-属性-生成事件,在“生成后事件命令行”中填写命令:

CD $(TargetDir)
"$(Obfuscar)" obfuscar.xml

  • 编译成功后,VS便执行上面写的两行命令
  • CD $(TargetDir)这条命令很重要,决定了obfuscar.xml配置文件中InPath的值"."的相对路径的位置,InPath的值如果不对,会找不到要混淆的dll
  • "$(Obfuscar)" obfuscar.xml便是核心,使用obfuscar.xml配置混淆代码

至此,所有的配置都已完成,下面编译项目,验证是否混淆

验证是否混淆#

右击MS.WebApi应用程序,选择发布,根据上一章节的配置重新发布编译一次网站项目:

可以看到publish中即最终发布的项目文件,Obfuscator_Output就是根据配置文件混淆过后的dll

打开Obfuscator_Output:

可以看到里面有三个dll,即我们在obfuscar.xml中写的三个需要混淆的dll

下载并打开ILSpy,打开
Releasenetcoreapp3.1publishMS.Services.dll(混淆前)和Releasenetcoreapp3.1Obfuscator_OutputMS.Services.dll(混淆后)进行对比

  • 可以看到代码已成功混淆(绿色框出来的地方)
  • 可以看到代码部分成员变量已经变成了unicode编码

将Obfuscator_Output中的三个dll复制并粘贴覆盖到publish中,然后将publish中的网站项目文件全部拷贝至IIS部署目录website中(具体请参考上一章节),重启IIS,调用接口,网站可以使用混淆后的代码正常运行(这边就不再截图了)

作者:kasnti

出处:https://www.cnblogs.com/kasnti/p/12284757.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

最后

以上就是自觉小丸子为你收集整理的ASP.NET Core搭建多层网站架构【15-扩展之使用Obfuscar混淆加密保护代码】ASP.NET Core搭建多层网站架构【15-扩展之使用Obfuscar混淆加密保护代码】的全部内容,希望文章能够帮你解决ASP.NET Core搭建多层网站架构【15-扩展之使用Obfuscar混淆加密保护代码】ASP.NET Core搭建多层网站架构【15-扩展之使用Obfuscar混淆加密保护代码】所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部