Obfuscar的使用

news2024/9/29 15:25:20

1、在程序中nuget安装Obfuscar

 2、在工程中新建Obfuscar.xml文件,内容如下

<?xml version='1.0'?>
<Obfuscator>
	<!-- 输入的工作路径,采用如约定的 Windows 下的路径表示法,如以下表示当前工作路径 -->
	<!-- 推荐使用当前工作路径,因为 DLL 的混淆过程,需要找到 DLL 的所有依赖。刚好当前工作路径下,基本都能满足条件 -->
	<Var name="InPath" value="." />
	<!-- 混淆之后的输出路径,如下面代码,设置为当前工作路径下的 Obfuscar 文件夹 -->
	<!-- 混淆完成之后的新 DLL 将会存放在此文件夹里 -->
	<Var name="OutPath" value=".\Obfuscar" />
	<!-- 以下的都是细节的配置,配置如何进行混淆 -->

	<!-- 使用 KeepPublicApi 配置是否保持公开的 API 不进行混淆签名,如公开的类型公开的方法等等,就不进行混淆签名了 -->
	<!-- 语法的写法就是 name 表示某个开关,而 value 表示值 -->
	<!-- 对于大部分的库来说,设置公开的 API 不进行混淆是符合预期的 -->
	<Var name="KeepPublicApi" value="true" />
	<!-- 设置 HidePrivateApi 为 true 表示,对于私有的 API 进行隐藏,隐藏也就是混淆的意思 -->
	<!-- 可以通过后续的配置,设置混淆的方式,例如使用 ABC 字符替换,或者使用不可见的 Unicode 代替 -->
	<Var name="HidePrivateApi" value="true" />
	<!-- 设置 HideStrings 为 true 可以设置是否将使用的字符串进行二次编码 -->
	<!-- 由于进行二次编码,将会稍微伤一点点性能,二次编码需要在运行的时候,调用 Encoding 进行转换为字符串 -->
	<Var name="HideStrings" value="true" />
	<!-- 设置 UseUnicodeNames 为 true 表示使用不可见的 Unicode 字符代替原有的命名,通过此配置,可以让反编译看到的类和命名空间和成员等内容都是不可见的字符 -->
	<Var name="UseUnicodeNames" value="true" />
	<!-- 是否复用命名,设置为 true 的时候,将会复用命名,如在不同的类型里面,对字段进行混淆,那么不同的类型的字段可以是重名的 -->
	<!-- 设置为 false 的时候,全局将不会有重复的命名 -->
	<Var name="ReuseNames" value="true" />
	<!-- 配置是否需要重命名字段,默认配置了 HidePrivateApi 为 true 将都会打开重命名字段,因此这个配置的存在只是用来配置为 false 表示不要重命名字段 -->
	<Var name="RenameFields" value="true" />
	<!-- 是否需要重新生成调试信息,生成 PDB 符号文件 -->
	<Var name="RegenerateDebugInfo" value="false" />

	<Var name="OptimizeMethods" value="true"/>

	<Var name="SuppressIldasm" value="false"/>

	<!-- 需要进行混淆的程序集,可以传入很多个,如传入一排排 -->
	<!-- <Module file="$(InPath)\Lib1.dll" /> -->
	<!-- <Module file="$(InPath)\Lib2.dll" /> -->
	<Module file="$(InPath)\FengHua.Converter2.dll">
		<!--SkipType跳过指定的类 Program是Main所在的类名-->
		<!--
		<SkipType name="Program"  />
		-->
		<!--SkipMethod 跳过指定的方法-->
		<!--
		<SkipMethod type="Program" name="Main"/>-->
	</Module>


	<!-- 程序集的引用加载路径,对于 dotnet 6 应用,特别是 WPF 或 WinForms 项目,是需要特别指定引用加载路径的 -->
	<!-- 这里有一个小的需要敲黑板的知识点,应该让 Microsoft.WindowsDesktop.App 放在 Microsoft.NETCore.App 之前 -->
	<!-- 对于部分项目,如果没有找到如下顺序,将会在混淆过程中,将某些程序集解析为旧版本,从而失败 -->
	<!--<AssemblySearchPath path="C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\6.0.1\" />
	<AssemblySearchPath path="C:\Program Files\dotnet\shared\Microsoft.NETCore.App\6.0.1\" />-->
</Obfuscator>

其中

 3、设置生成事件指令

 

"$(Obfuscar)" Obfuscar.xml

4、最后编译运行即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/730336.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Spring】项目创建和使用

一、Spring 的概念 Spring : 包含众多工具方法的 IoC 容器。 Spring 的核心 &#xff1a;IoC &#xff08;控制反转&#xff09;&#xff0c; DI (依赖注入)。 loC &#xff08;Inversion of Control&#xff09;翻译成中文就是 “控制反转” 的意思&#xff0c;控制反转一种…

嵌入式QT- QT使用MQTT

目录 一、MQTT介绍 二、MQTT概念 2.1 订阅(Subscribtion) 2.2 会话&#xff08;Session&#xff09; 2.3 主题名&#xff08;Topic Name&#xff09; 2.4 主题筛选器&#xff08;Topic Filter&#xff09; 2.5 消息订阅 三、MQTT中的角色 3.1 客户端 3.2 服务器 四、X86平…

2.1.cuda驱动API-概述

目录 前言1. Driver API概述总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程&#xff0c;之前有看过一遍&#xff0c;但是没有做笔记&#xff0c;很多东西也忘了。这次重新撸一遍&#xff0c;顺便记记笔记 本次课程学习精简 CUDA 教程-Driver API 概述 课程大纲可看下…

【UE】点击场景中的物体生成介绍标签

效果 步骤 首先创建一个控件蓝图添加如下控件 给水平框控件添加了一段动画&#xff0c;让该控件显示2秒钟&#xff0c;然后在2~3秒间位置上移并且不透明度减少 在图表中播放动画&#xff0c;延迟3秒后移除控件蓝图 在玩家控制的Pawn中添加如下节点 首先由“由通道检测线条”节…

基于Swing的校园管理系统

1 引言 1.1项目背景 我校积极举办组织学生参加各级各种科技、文艺、体育等校园文化活动&#xff0c;寓思想品德教育于生动活泼、形象具体的校园文化活动中。由于学校各级通讯不太方便&#xff0c;活动筹备过程中&#xff0c;无论是活动参与者的报名、观众的报名还是组织者的…

Image Sensor的FSIN/VSYNC

本文介绍Image Sensor的FSIN/VSYNC。 产品开发过程(比如3D成像)中&#xff0c;有时会遇到需要2个及以上的Image Sensor同步采集&#xff0c;因此&#xff0c;Image Sensor厂家对于他们的产品都提供了同步功能&#xff0c;也就是我们经常所见的FSIN/VSYNC(OV),XVS(Sony IMX3系列…

飞行动力学 - 第6节-part1-喷气式飞机的航时及等高航程 之 基础点摘要

飞行动力学 - 第6节-part1-喷气式飞机的航时及等高航程 之 基础点摘要 1. 续航性能2. 巡航受力运动方程3. 喷气式飞机3.1 航时3.2 航程3.3 等高巡航 4. 参考资料 1. 续航性能 耗油率航程航时 2. 巡航受力运动方程 6个方程表达式来进行表达&#xff1a; 3. 喷气式飞机 3.1 …

chatgpt api + function calling + 高德天气API + google custom search【联谷歌,联高德】

OpenAI 发布几个重磅更新 1、 开放 16k 上下文的 GPT-3.5-Turbo 模型&#xff08;gpt-3.5-turbo-16k&#xff09;&#xff0c;是目前的4倍 2、 新的 GPT-4 和 3.5 Turbo 模型 3、Chat Completions API 中的新增加函数调用功能 &#xff08;实时获取网络数据成为可能&#xff0…

SpringBoot2+Vue2实战(十二)springboot一对一,一对多查询

新建数据库表 Course Data TableName("t_course") public class Course implements Serializable {private static final long serialVersionUID 1L;/*** id*/TableId(value "id", type IdType.AUTO)private Integer id;/*** 课程名称*/private String…

如何成为微软MVP?

对一个普通的开发人员来说&#xff0c;最大的认可就是得到微软官方的MVP 认证了&#xff0c;是一份对技术人的荣誉证书。 微软的MVP是相对公平公正的&#xff0c;只要你热爱技术&#xff0c;热爱分享&#xff0c;在一定的领域里有足够的深度&#xff0c;就会得到微软官方的认证…

【沐风老师】3dMax使用Dreamscape插件创建漂亮的日落场景教程

在本教程中,您将学习如何利用3dMax和DreamScape在平静的海面上创造一个美丽的日落效果。DreamScape是3dMax的一套复杂的插件,可以让你创造和呈现现实的景观、海景、天空、云层、户外照明等等。 【最后效果预览】 步骤1&#xff1a;首先,要用DreamScape来呈现一个场景,你需要创…

【Linux学习】日积月累——进程(1)

一、背景 1.1 冯诺依曼体系结构 我们常见的计算机、服务器等设备大部分遵循冯诺依曼体系。 图1 冯诺依曼体系结构 当前&#xff0c;我们所认识的计算机&#xff0c;主要由各类硬件组成&#xff1a; 输入单元&#xff1a;包含键盘、鼠标、扫描仪、写板等&#xff1b;中央处理器…

Unity游戏开发之游戏动画(Unity动画系统)

文章目录 Unity动画系统动画片段 Animation Clip在Unity中制作动画动画复用 替身系统 AvatarAnimator 组件 Animator Component动画状态机 Animator Controller动画状态动画状态的类型动画状态的属性 动画状态机----动画转换转换属性的配置面板 、、、、 Unity动画系统 Unity动…

selenium 02

✏️作者&#xff1a;银河罐头 &#x1f4cb;系列专栏&#xff1a;JavaEE &#x1f332;“种一棵树最好的时间是十年前&#xff0c;其次是现在” 目录 等待浏览器的操作键盘事件鼠标事件定位一组元素多层框架定位下拉框处理弹窗处理上传文件操作关闭浏览器切换窗口截图 等待 s…

SOLIDWORKS小问题解答 硕迪科技

众所周知&#xff0c;SOLIDWORKS的使用者非常多&#xff0c;在使用过程中呢也会有一些小问题&#xff0c;前几天就有朋友来咨询了两个问题&#xff0c;可能其他使用者也有这样的问题&#xff0c;所以今天硕迪科技统一为大家解答 问题一&#xff1a;SOLIDWORKS装配图中的颜色怎么…

csv文件如何在单元格内保留换行 \r\n

csv文件如何在单元格内保留换行 \r\n 一、问题描述 我们都知道 csv 文件内是通过 , 来切分单元格的。 但如果某个单元格内的内容有换行&#xff1a; 34, KyleBing, 你好 # 这里换行了 我的名字是 kyebing 35, Tina, hello 36, Lucy, nice to meet you当用 Excel 打开的时候…

如何使Revit导出带有标准材质的FBX模型?

如何使Revit导出带有标准材质的FBX模型&#xff1f; 初次使用Revit导出fbx格式模型&#xff0c;在导出模型后发现模型材质丢失了&#xff0c;上网查询之后也没到具体原因是什么&#xff0c;不过倒是找到了解决方式&#xff1a;在Revit中安装naviswork插件&#xff0c;然后从re…

Vue之router和vuex

Vue之router和vuex 在学习之前&#xff0c;我们可以先安装一个插件&#xff0c;是一个浏览器插件&#xff0c;这个插件的作用是可以让我们更好的观察到数据的变化和状态的变更 他是一个github的链接&#xff0c;如果你没办法科学上网的话&#xff0c;也可以在 插件下载 上面这…

CodeQL在代码审计中的应用

一、CodeQL简介 CodeQL是一种基于静态分析的程序分析工具&#xff0c;由GitHub开发和维护。截止到此刻&#xff0c;CodeQL在Github上已经有超过6100个Star。它可以用于发现代码中的漏洞、代码质量问题和安全问题。CodeQL使用了一种特殊的编程语言QL&#xff08;查询语言&#…

【Unity项目】Unity实现 双屏显示效果

需求&#xff1a;两个屏显示项目&#xff0c;一个屏显示列表&#xff0c;一个屏显示列表按钮点击后的效果。 最近在修改一个项目&#xff0c;是要求分屏显示项目&#xff0c;一个一体机&#xff0c;一个大屏&#xff0c;一体机当作目录界面&#xff0c;大屏当作模型显示界面&am…