在.NET平台上开发的软件,若未经过混淆处理,极易被他人利用.NET Reflector、ILSpy等反编译工具还原源代码,造成源码泄露,严重威胁知识产权安全。为有效防范此类风险,代码混淆已成为当前最为普遍且有效的保护手段。市面上存在多种混淆工具,各具特点。本文重点介绍如何运用ConfuserEx这一开源工具,对软件的DLL文件进行深度混淆处理,增强逆向难度,提升程序安全性,从而实现对软件核心逻辑和关键代码的有效保护。
1、 搜索并下载ConfuserEx与ILSpy工具到本地电脑。
2、 在Visual Studio中创建一个名为test的命令行应用程序,编写相应代码并生成项目。该程序功能简单:启动后调用GetGUID函数获取一个GUID字符串,并将其输出显示在控制台窗口中,具体效果所示。
3、 解压ILSpy后启动程序,将test.exe文件直接拖入其主界面即可。
4、 此时可观察到原始程序代码的显示。
5、 解压ConfuserEx后运行其中的ConfuserEx.exe程序。
6、 点击base directory文本框后的...按钮,选择需混淆的文件夹路径。
7、 点击output directory后的...按钮,选择需混淆文件的文件夹路径。
8、 点击右侧+按钮,在弹出的窗口中选择test.exe文件,然后点击打开确认操作。
9、 进入设置选项卡进行相关配置操作。
10、 在左侧列表中选择Global Setting,然后点击右侧的+按钮。
11、 在Rule列表中找到TRUE选项,点击其右侧的编辑按钮进行操作。
12、 在弹出窗口中,根据图示选择对应项并勾选,然后点击完成按钮。
13、 进入防护功能页面进行设置操作。
14、 点击保护!按钮即可完成操作。
15、 等待混淆完成,结果显示。
16、 用ILSpy打开text.exe后,原始代码已无法查看。
