.NET 程序集合并-多个dll合并

VirboxProtector 2.5.2 版本增加了.NET 程序集合并功能,可以将 .NET 格式的可执行程序(.exe)及动态库(.dll)合并为一个模块,可以消除模块间的依赖,再对其进行保护可以起到更好的名称混淆效果。
使用流程
可以在 Virbox Protector 工具菜单下打开.NET 程序集合并工具

合并步骤
1.将待合并的程序集全部拖到程序集列表里;
2.选择一个主程序集;
3.设置合并后的主程序集存放位置,默认会生成一个Merge文件夹并存放在这里;
4.点击合并;
合并完成后,可以删除除了主程序集外的其它被合并的 dll,然后把合并后的主程序集替换原来的主程序集。

主程序集
合并后生成的主程序集,可以是 exe 或 dll。
合并注意事项
合并模块必须是 .NET 格式的程序,可以是 .exe 或 .dll;
若可执行程序(exe文件)为PE类型,对dll文件合并时要注意是否含有与exe同名的dll文件,一般exe文件会直接调用同名的dll文件,这个情况下进行合并时该dll文件必须为主程序集,否则合并后exe会运行失败(例如demo.exe为PE程序,若有demo.dll文件,则该dll合并时为主程序集);
合并程序集不支持对系统的dll进行合并,只支持自己编译的文件,例如Unity程序中的dll文件,只支持Assembly-Csharp*开头的dll和自己开发的程序集dll,其他系统的dll文件并不支持合并;
除了合并的主程序集模块,其它模块不能被未合并的模块依赖,否则运行时会因找不到模块而异常;
不支持的文件拖入该功能界面时会被过滤,不会显示在.NET程序集合并的窗口中;
.NET程序集合并不支持对加壳后的程序进行合并;
命令行工具实现合并
使用 -ilmerge
选项进行合并:
保护程序集
合并后程序集,可以再添加到VirboxProtector进行保护。参考 .NET加密流程:https://h.virbox.com/vbp/docs/%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%BA%94%E7%94%A8%E4%BF%9D%E6%8A%A4/NET%E7%A8%8B%E5%BA%8F%E4%BF%9D%E6%8A%A4%E6%B5%81%E7%A8%8B