《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官网要关了,挺难过的。
《DotNet Web应用单文件部署系列》三、混淆dll文件的更多相关文章
- (Unity)Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进展混淆,避免被反编译
Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进行混淆,避免被反编译. 1.打开VS,博主所用版本是Visual Studio 2013. 2.新建一个VC项目 ...
- 《DotNet Web应用单文件部署系列》一、pubxml文件配置
很多人想用DotNet开发软件赚点外快子补添家用,但心里总放不下心来,担心被人破解了.好消息是去年发布的DotNet 5支持单文件部署,不同于DotNet 3运行时将文件释放到临时文件夹内,DotNe ...
- 《DotNet Web应用单文件部署系列》二、打包wwwroot文件夹
在这篇文章中,你将学到web缓存规则,文件传输中用到的压缩格式,以及如何手写代码响应请求.最后还能学到快速打包wwwroot文件夹组件用法. 一.了解Response Header 当第一次加载程序时 ...
- Quartz定时任务学习(二)web应用/Quartz定时任务学习(三)属性文件和jar
web中使用Quartz 1.首先在web.xml文件中加入 如下内容(根据自己情况设定) 在web.xml中添加QuartzInitializerServlet,Quartz为能够在web应用中使用 ...
- web前端知识大纲:系列三 html篇
web前端庞大而复杂的知识体系的组成:html.css和 javascript 三.HTML 1.BOM BOM 是 Browser Object Model的缩写,即浏览器对象模型,当一个浏览器页面 ...
- C# 文件读写系列三
1.读写文本文件 在C# 文件读写系列二中列举了相当多的读写文本文件的方法,大致有以下几种: (1).通过静态类File的静态方法来进行文本文件的读写,主要有ReadAllBytes().ReadAl ...
- PE文件学习系列三-PE头详解
合肥程序员群:49313181. 合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入) Q Q:408365330 E-Mail:egojit@qq.com 最近比较忙 ...
- Windows phone开发之文件夹与文件操作系列(一)文件夹与文件操作
Windows phone7中文件的存储模式是独立的,即独立存储空间(IsolatedStorage).对文件夹与文件操作,需要借助IsolatedStorageFile类. IsolatedStor ...
- 驱动文件中只有cat/inf/dll文件,怎么安装
网上下载了一个驱动,里面包含文件只有cat/inf/dll文件,怎么安装? 1.计算机-右键-管理-设备管理器,找到要装驱动的设备上 2.右键-更新驱动程序-浏览到本地的这个驱动文件夹 3.开始安装
随机推荐
- NB-IoT四大关键特性及实现告诉你,为啥NB
摘要:NB- IoT 网络是基于4G网络演进过来的,所以它在上行和下行的复用技术上还是沿用了4G的OFDMA和SC-FDMA. 本文分享自华为云社区<一文了解NB-IoT四大关键特性以及实现技术 ...
- 【硬件模块】华为NBIOT 使用记录
From: https://liudongdong1.github.io/ 1. background Low power wide area network (LPWAN) has become a ...
- 3、二进制安装K8s之部署kube-apiserver
二进制安装K8s之部署kube-apiserver 一.生成 kube-apiserver 证书 1.自签证书颁发机构(CA) cat > ca-config.json <<EOF ...
- C# 获取计算机的硬件、操作系统信息
C# 获取计算机的硬件.操作系统信息 获得信息的命名空间是:System.Management 创建ManagementObjectSearcher对象获取相关信息 eg: using Syste ...
- C# wpf中关于binding的converter无效的情况
最近碰到bingding设置了convert转换无效的问题.困扰了我好久.这里记录分析一下. 先说下现象 我把TextBox的text属性 绑定到了对应的 convert.代码如下 希望吧pd_no ...
- UWP使用命名管道与桌面程序通信 (C#)
关于UWP的历史,其起源是Microsoft在Windows 8中引入的Metro apps.(后来又被称作Modern apps, Windows apps, Universal Windows A ...
- 多台服务器共享session问题(2)
多台服务器共享session问题 转载自:https://www.cnblogs.com/lingshao/p/5580287.html 在现在的大型网站中,如何实现多台服务器中的session数据 ...
- centos7系统上pgsql的一些报错解决方法
1.2021-07-15 # 问题: 登录时服务器拒绝连接 psql -h 192.168.1.112 # 解决方法:修改配置文件 pg_hba.conf ,将该主机加进白名单 vi pg_hba.c ...
- Kafka内外网访问
本文介绍了Kafka内外网访问的设置. kafka的两个配置listeners和advertised.listeners listeners kafka监听的网卡的ip,假设你机器上有两张网卡,内网1 ...
- ICCV2021 | MicroNet:以极低的 FLOPs 改进图像识别
前言:这篇论文旨在以极低的计算成本解决性能大幅下降的问题.提出了微分解卷积,将卷积矩阵分解为低秩矩阵,将稀疏连接整合到卷积中.提出了一个新的动态激活函数-- Dynamic Shift Max,通过 ...