使用命令行加密混淆C#程序

news2025/4/26 19:09:16

C#作为托管语言编译生成的IL中间代码极易被反编译工具还原源码。据统计,超过83%的商业软件曾遭遇过代码逆向风险,导致核心算法泄露、授权被跳过. 因此对于C#语言开发的程序来说, 在发布前进行混淆和加密非常有必要.

本文主要介绍如何使用恒盾C#混淆加密大师1.3.0版本, 通过命令行的方式, 对C#进行混淆加密, 可以方便的集成到自己的程序发布流程中, 无需手动操作软件进行加密. 

如果您不像通过命令行进行处理C#程序, 只想了解如何通过软件界面进行操作, 可以查看我们之前的文章: 
恒盾C#混淆加密卫士 - 混淆加密保护C#程序_恒盾c#混淆加密大师-CSDN博客

使用命令行混淆加密C#程序快速流程


1. 首先下载安装恒盾C#混淆加密卫士最新版本, 可以通过下面的CSDN文库链接免积分下载

【免费】恒盾C#混淆加密大师1.3.0-支持命令行C#混淆加密资源-CSDN文库

2. 下载安装完成后, 我们打开软件, 选择想要加密的C# 程序, 并选择想要的混淆选项

3. 在软件界面右上角, 选择文件->导出配置, 把导出的配置文件存放到的你的电脑中, 例如配置文件可以被导出到这个路径: C:\app\config.csop

4. 在软件安装目录, 可以找到CLI.exe文件, 该文件就是命令行处理C#的命令行程序, 例如CLI.exe文件位于 C:\app\CSharpObfuscator1.3.0\CLI.exe

5. 此时我们便可以通过命令行直接进行混淆加密处理了, 打开系统中的cmd程序, 输入下面的命令行

C:\app\CSharpObfuscator1.3.0\CLI.exe --config C:\app\config.csop

混淆处理信息如下:

6. 处理完成后, 混淆加密的程序会被存放在相应的位置

混淆配置文件详细说明


混淆配置文件config.csop是一个jsonc文件, 内部有详细的注释和介绍, 你可以根据需求进行修改, 一个完整的配置文件如下:

{
    // 需要加密的dll或者exe的路径
    "ModulePath": "C:/app/Dummy.exe",

    // 输出文件路径
    "OutputPath": "C:/app/Dummy_obf.exe",

    // 防调试, true为开启, false为关闭
    "AntiDebug": false,

    // 防ILDsm, true为开启, false为关闭 
    "AntiILDasm": true,

    // 防DnSpy, true为开启, false为关闭
    "AntiDnSpy": false,

    // 防篡改, true为开启, false为关闭
    "AntiModify": false,

    // 加壳, true为开启, false为关闭
    "AddShell": false,

    // 引用列表混淆, true为开启, false为关闭
    "DupTypeRef": false,

    // 防de4dot, true为开启, false为关闭
    "AntiDe4dot": false,

    // 防断点, true为开启, false为关闭
    "AntiBreakPoint": false,

    // 防虚拟机, true为开启, false为关闭
    "AntiVM": true,

    // 加密资源文件, true为开启, false为关闭
    "ResourceProtect": false,

    // 防ILSpy, true为开启, false为关闭
    "AntiILSpy": false,

    // 原生化EXE, true为开启, false为关闭
    "Nativefier": false,

    // 防内存提取, true为开启, false为关闭
    "AntiDump": false,

    // 垃圾域, true为开启, false为关闭
    "JunkField": false,

    // 垃圾空指令, true为开启, false为关闭
    "JunkNop": true,

    // 垃圾函数, true为开启, false为关闭
    "JunkMethod": false,

    // 垃圾类型, true为开启, false为关闭
    "JunkType": false,

    // 垃圾字符串, true为开启, false为关闭
    "JunkString": false,

    // 文件信息混淆, true为开启, false为关闭
    "AssemblyConfusor": true,

    // 布尔混淆, true为开启, false为关闭
    "BooleanConfusor": true,

    // 文件时间混淆, true为开启, false为关闭
    "TimeConfusor": false,

    // 流程混淆, true为开启, false为关闭
    "ControlFlowConfusor": false,

    // 字符串加密, true为开启, false为关闭
    "StringConfusor": false,

    // DOS头混淆, true为开启, false为关闭
    "DosHeaderConfusor": false,

    // 字符串拆分, true为开启, false为关闭
    "StringSplitConfusor": true,

    // 整数混淆, true为开启, false为关闭
    "IntConfusor": false,

    // 小数混淆, true为开启, false为关闭
    "DecimalConfusor": false,

    // 函数调用混淆, true为开启, false为关闭
    "CalliConfusor": false,

    // 字符串隐藏, true为开启, false为关闭
    "HideStringConfusor": false,

    // 数字隐藏, true为开启, false为关闭
    "HideIntConfusor": false,

    // 函数体隐藏, true为开启, false为关闭
    "HideMethodBodyConfusor": false,

    // 异步混淆, true为开启, false为关闭
    "AwaitConfusor": false,

    // 链式函数混淆, true为开启, false为关闭
    "ProxyRefConfusor": false,

    // 错误函数体混淆, true为开启, false为关闭
    "InvalidILConfusor": false,

    // 重命名模式, 1为字母数字模式, 2为UUID模式, 3为特殊字符模式, 4为Base64模式, 5为英文单词模式
    "RenameMode": 1,

    // Module重命名, true为开启, false为关闭
    "ModuleRename": false,

    // 域重命名, true为开启, false为关闭
    "FieldRename": false,

    // 函数重命名, true为开启, false为关闭
    "MethodRename": false,

    // 命名空间重命名, true为开启, false为关闭
    "NamespaceRename": false,

    // 参数重命名, true为开启, false为关闭
    "ParamRename": false,

    // 类型重命名, true为开启, false为关闭
    "TypeRename": false,

    // 忽略函数列表
    "FuncIgnoreList": "TestFunc, NewClass.TestFunc, NameSpace.NewClass.TestFunc"
}

配置文件的字段, 和软件界面里的配置一致, 你可以通过配置true或者false启用或者关闭某一个混淆选项: 

如果您不太会写配置文件, 可以直接在软件内选择好想要的配置, 然后在软件右上角菜单里面选择 文件 -> 导出配置, 让程序帮您自动生成配置文件.

以上便是关于使用命令行对C#程序进行加密混淆的介绍, 如果有问题可以留言反馈

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

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

相关文章

当智驾成标配,车企暗战升级|2025上海车展

文|刘俊宏 编|王一粟 智能化无处不在的2025年上海车展,回归了卖车的初衷。 光锥智能在展会暴走两天,最大的感触是今年的车展少了争奇斗艳,多了些许务实。 回顾智能汽车时代的三场重要车展。2023年的上海车展充满了…

在网上找的资料怎样打印出来?

在数字化时代,我们经常需要从互联网上获取各种资料,无论是学术论文、工作文档还是学习资料。然而,如何高效地将这些网上的资料打印出来,却是一个值得探讨的问题。本文将为您提供一个全面的解决方案,帮助您轻松完成网上…

算法训练营 Day1

努力追上那个曾经被寄予厚望的自己 —— 25.4.25 一、LeetCode_26 删除有序数组中的重复项 给你⼀个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现⼀次 ,返回删除后数组的 新⻓度。元素的 相对顺序 应该保持 ⼀致 …

【linux】Chrony服务器

简介 1.1 时间的重要性 由于 IT 系统中,准确的计时非常重要,有很多种原因需要准确计时: 在网络传输中,数据包括和日志需要准确的时间戳 各种应用程序中,如订单信息,交易信息等 都需要准确的时间戳 1.2 时区…

技术视界 | 数据的金字塔:从仿真到现实,机器人学习的破局之道

在人工智能的世界里,有一个共识正逐渐达成——谁掌握了数据,谁就掌握了未来。 尤其是在机器人技术迅速演进的今天,“如何让机器人理解世界、学习操作”这一问题的根源,越来越回归到数据本身。正如一座金字塔般,不同层…

wsl联通外网

在C:\Users<你的用户名>下&#xff0c;新建.wslconfig文件添加如下配置&#xff08;具体配置参考官方文档&#xff09;&#xff1a; # Settings apply across all Linux distros running on WSL 2 [wsl2]# Limits VM memory to use no more than 4 GB, this can be set …

shadcn/radix-ui的tooltip高度定制arrow位置

尝试了半天&#xff0c;后来发现&#xff0c;不支持。。。。。就是不支持 那箭头只能居中 改side和align都没用&#xff0c;下面有在线实例 https://codesandbox.io/p/sandbox/radix-ui-slider-forked-zgn7hj?file%2Fsrc%2FApp.tsx%3A69%2C21 但是呢&#xff0c; 第一如果…

【专题刷题】二分查找(二)

&#x1f4dd;前言说明&#xff1a; 本专栏主要记录本人的基础算法学习以及LeetCode刷题记录&#xff0c;按专题划分每题主要记录&#xff1a;&#xff08;1&#xff09;本人解法 本人屎山代码&#xff1b;&#xff08;2&#xff09;优质解法 优质代码&#xff1b;&#xff…

C++_数据结构_详解红黑树

✨✨ 欢迎大家来到小伞的大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;C学习 小伞的主页&#xff1a;xiaosan_blog 制作不易&#xff01;点个赞吧&#xff01;&#xff01;谢谢喵&#xff01;&…

数据结构手撕--【二叉树】

目录 定义结构体&#xff1a; 初始化&#xff1a; 手动创建一个二叉树&#xff1a; 前序遍历&#xff1a; 中序遍历&#xff1a; 后序遍历 二叉树节点个数&#xff1a; 叶子节点个数&#xff1a; 二叉树第k层节点个数&#xff1a; 二叉树的高度&#xff1a; 查找值为x…

.NET MAUI 发展历程:从 Xamarin 到现代跨平台应用开发框架

文章目录 引言Xamarin 起源&#xff1a;MAUI 的前身Xamarin 的创立&#xff08;2011年&#xff09;Xamarin Studio 与 Visual Studio 集成&#xff08;2013年&#xff09;Xamarin.Forms 的诞生&#xff08;2014年&#xff09;微软收购Xamarin&#xff08;2016年&#xff09; .N…

多模态大语言模型arxiv论文略读(四十)

The Wolf Within: Covert Injection of Malice into MLLM Societies via an MLLM Operative ➡️ 论文标题&#xff1a;The Wolf Within: Covert Injection of Malice into MLLM Societies via an MLLM Operative ➡️ 论文作者&#xff1a;Zhen Tan, Chengshuai Zhao, Raha M…

【蓝桥杯选拔赛真题104】Scratch回文数 第十五届蓝桥杯scratch图形化编程 少儿编程创意编程选拔赛真题解析

目录 scratch回文数 一、题目要求 1、准备工作 2、功能实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 四、程序编写 五、考点分析 六、推荐资料 1、scratch资料 2、python资料 3、C++资料 scratch回文数 第十五届青少年蓝桥杯scratch编…

OpenWrt 与 Docker:打造轻量级容器化应用平台技术分享

文章目录 前言一、OpenWrt 与 Docker 的集成前提1.1 硬件与内核要求1.2 软件依赖 二、Docker 环境部署与验证2.1 基础服务配置2.2 存储驱动适配 三、容器化应用部署实践3.1 资源限制策略3.2 Docker Compose 适配 四、性能优化与监控4.1 容器资源监控4.2 镜像精简策略 五、典型问…

C++初阶----模板初阶

引言 什么是模板 模板是泛型编程的基础&#xff0c;泛型编程是以一种独立于任何特定类型的方式编写代码。 模板也是创建泛型类或者函数的蓝图。 如&#xff1a;库容器&#xff0c;迭代器和算法&#xff0c;都是泛型编程的例子 1. 泛型编程 首先&#xff0c;我们应该了解什么是…

网络流量分析 | 流量分析基础

流量分析是网络安全领域的一个子领域&#xff0c;其主要重点是调查网络数据&#xff0c;以发现问题和异常情况。本文将涵盖网络安全和流量分析的基础知识。 网络安全与网络中的数据 网络安全的两个最关键概念就是&#xff1a;认证&#xff08;Authentication&#xff09;和授…

C语言文件操作完全手册:读写·定位·实战

1.什么是文件 1.1文件的概念 文件&#xff08;File&#xff09;是计算机中用于持久化存储数据的基本单位。它可以存储文本、图片、音频、程序代码等各种信息&#xff0c;并在程序运行结束后仍然保留数据。 1.2文件名 一个文件要有一个唯一的文件标识&#xff0c;以便用户识别…

多模态大语言模型arxiv论文略读(三十七)

A Spectrum Evaluation Benchmark for Medical Multi-Modal Large Language Models ➡️ 论文标题&#xff1a;A Spectrum Evaluation Benchmark for Medical Multi-Modal Large Language Models ➡️ 论文作者&#xff1a;Jie Liu, Wenxuan Wang, Yihang Su, Jingyuan Huan, …

SpringBoot 学习

什么是 SpringBoot SpringBoot 是基于 Spring 生态的开源框架&#xff0c;旨在简化 Spring 应用的初始化搭建和开发配置。它通过约定大于配置的理念&#xff0c;提供快速构建生产级应用的解决方案&#xff0c;显著降低开发者对 XML 配置和依赖管理的负担。 特点&#xff1a; …

VuePress 使用教程:从入门到精通

VuePress 使用教程&#xff1a;从入门到精通 VuePress 是一个以 Vue 驱动的静态网站生成器&#xff0c;它为技术文档和技术博客的编写提供了优雅而高效的解决方案。无论你是个人开发者、团队负责人还是开源项目维护者&#xff0c;VuePress 都能帮助你轻松地创建和管理你的文档…