跳到主要内容

命令行工具使用指南

1. 选择需要加密的程序,并配置混淆选项。

2. 导出配置文件

在软件界面的右上角菜单中选择"文件 > 导出配置",将配置文件存储在本地。例如,保存为 C:\app\config.csop

3. 定位命令行工具

在软件安装目录中找到命令行工具 CLI.exe。例如,目录路径为 C:\app\CSharpObfuscator1.3.0\CLI.exe

4. 执行命令行混淆加密

打开系统的命令提示符(cmd),输入如下命令对程序进行混淆加密:

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

加密处理完成后,混淆后的程序将被存储到指定的输出路径。具体加密过程信息如下图所示:

混淆加密过程信息

5. 加密完成的文件存储位置

混淆加密完成后,处理后的程序将存储在相应的输出路径中,如下图所示:

加密后的文件

混淆配置文件详细说明

配置文件 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"
}

此文件的字段与软件界面的选项配置一致,更多信息可以参考混淆选项详解

自动生成配置文件

如果您不熟悉如何编辑配置文件,可以直接在软件内选择需要的混淆配置,然后通过"文件 > 导出配置"功能自动生成配置文件。

命令行集成优势

  1. 自动化部署:可以轻松集成到CI/CD流程中,实现代码编译后的自动混淆
  2. 批量处理:通过脚本可以批量处理多个程序集
  3. 无人值守:配置完成后可以在后台自动执行,无需人工干预
  4. 可重复性:确保每次混淆过程使用相同的配置参数

常见问题

Q: 命令行工具支持哪些参数?

A: 目前主要支持通过 --config 参数指定配置文件路径。

Q: 可以直接在命令行指定混淆选项吗?

A: 当前版本需要通过配置文件指定混淆选项,不支持直接在命令行中指定各项参数。

Q: 如何在批处理文件中使用?

A: 可以创建.bat文件,在其中添加命令行调用,例如:

@echo off
"C:\app\CSharpObfuscator1.3.0\CLI.exe" --config "C:\app\config.csop"
echo 混淆加密完成!
pause

总结

通过命令行方式使用恒盾C#混淆加密大师,可以方便快捷地将加密混淆过程集成到现有开发流程中,实现自动化操作,提高工作效率,同时有效保护C#程序的知识产权和核心算法安全。