概述
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文件夹中)
- InPath即输入路径,"."表示从当前路径开始找,项目编译完,我会使用
添加生成事件#
在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混淆加密保护代码】所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复