当前位置: 首页 > news >正文

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

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#程序进行加密混淆的介绍, 如果有问题可以留言反馈

相关文章:

  • python中的logging库详细解析
  • AI超级智能体教程(三)---程序调用AI大模型的四种方式(SpringAI+LangChain4j+SDK+HTTP)
  • 二项式分布html实验
  • Low Poly 风格 | 飞机飞行可视化系统
  • 【计算机视觉】CV实战- 深入解析基于HOG+SVM的行人检测系统:Pedestrian Detection
  • 深入解析Mlivus Cloud核心架构:rootcoord组件的最佳实践与调优指南
  • 防火墙技术深度解析:从包过滤到云原生防火墙的部署与实战
  • 软测面经(私)
  • API/SDK
  • 【金仓数据库征文】金仓数据库:开启未来技术脑洞,探索数据库无限可能
  • 【基于Qt的QQMusic项目演示第一章】从界面交互到核心功能实现
  • 基于HTML+CSS实现的动态导航引导页技术解析
  • 数字孪生:从概念到实践,重构未来产业的“虚拟镜像”
  • Java实现背景图片加自适应水印图片
  • Android 编译问题 prebuilts/clang/host/linux-x86
  • Node.js 包管理工具介绍
  • 彻底卸载Python
  • 深入了解Activiti工作流引擎:从基础到实战
  • github把自己的jar包发送到maven中央仓库
  • 技术书籍推荐(003)
  • 邮轮、无人机、水上运动……上海多区推动文旅商体展融合发展
  • 中国平安一季度净赚270亿降逾26%,营运利润增2.4%
  • 2024年上海发生科技融资997起,位于全国第一
  • 预订假期酒店却被告知无法入住,去哪儿:对违规酒店予以处罚
  • 《哪吒2》再次延映至五月底,春节档影片仍有竞争力
  • 巴基斯坦航天员选拔工作正在进行,1人将以载荷专家身份参加联合飞行