
软加密工具dotfuscator 反混淆、反编译与使用方法
软件程序加密工具很多,在前面的文章中,介绍了 Xenocode 和 .NET Reactor 混淆加密软件源代码的方法及一些注意问题,本篇继续介绍 Visual Studio 自带的 dotfuscator使用方法及混淆加密注意事项。dotfuscator分社区版和专业版,后者功能多需要下载安装。
dotfuscator 也有与其它专业软件加密工具相似的功能:加密字符、重命名、混淆流程、加水印、程序签名、移除代码等,这些功能可以设置是否启用,接着就开始看如何用 dotfuscator 混淆加密软件程序源代码。
dotfuscator 使用方法
1、下载安装好 dotfuscator 后,打开它如果弹出“发现免费的新版本 Dotfuscator 程序”窗口,单击 OK 或右上角的 X 把它关闭,一会后进 dotfuscator 主界面并弹出 Select Project Type(选择工具类型)窗口,如图1所示:
图1
2、有两个选项,即 Create New Project(创建新工程) 和 Open Existing Project(打开已有工程),没创建过工程选择第一项,否则选择第二项,我们选择第一项,点击 Ok,然后单击打开文件图标,如图2所示:
图2
3、点击 Browse... 选择待加密的 exe 或 dll 文件,点击 Ok 文件被导入 dotfuscator。
4、选择 Settings 选择卡,需要设置的选项如下(图3):
图3
Disable Control flow(禁用控制流程):No
Disable Linking(禁用连接):Yes
Disable PreMark(禁用水印):Yes
Disable Removal(禁用移除代码):No
Disable Renaming(禁用重命名):No
Disable String Encryption(禁用字符加密):No
以上选项可根据需要设置,加密后再次测试代码有无问题即可。
5、选择 Rename 选项卡,勾选要加密文件,如图4所示:
图4
选择 Option 选项卡,勾选 Use Enhanced Overload Induction”(使用增强重载模式),不勾 Include serializable types in Enhanced Overload Induction(增强重载模式不用于序列化类型变量),Renaming Scheme(重命名方案)选择 Unprintable(不可打印字符),如图5所示:
图5
Keep NameSpace:保持命名空间;
Keep Hierarchy:保持层次结构;
Compatibility with XML serializer:与 XML 序列化兼容;
Introduce explicit method overrides when renaming:重命名时,采用易于理解的方法重写;
Type Name Prefix:类型名称前缀;
Apply to members:用于所有成员。
6、选择 String Encryption 选项卡,勾选要加密的文件,如图6所示:
图6
7、选择 Control Flow 选项卡,勾选要加密的文件,如图7所示:
图7
8、其它选可根据需要设置。
9、设置好后,单击“绿色小三角”开始混淆加密源码,也可以按 Ctrl + B。
10、如果没有保存,会弹出询问是否保存窗口(The project has changed. Do you wang to save the project?),如图8,选择“是”并选择保存文件夹,然后开始加密。
图8
11、加密完成后,输出文件保存在“刚才选择保存工程的文件夹”。如果没有保存工程,则输出文件保存在安装目录下的 Dotfuscated 文件夹,如 D:\Program Files (x86)\PreEmptive Solutions\Dotfuscator Professional Edition 4.9\Dotfuscated。
以上就是 dotfuscator 使用方法,步骤看起蛮繁锁,不过使用也简单。
注意问题:
1、如果混淆加密参与循环次数很多的字符串,程序执行效率会明显下降。
2、混淆加密后,一定要每个功能再测试一遍,因为混淆后程序很可能会出错。
至于 dotfuscator 反混淆和反编译能力如何,可以用一些反混淆和反编译工具测试,看能不能反编译出源代码。