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

VirboxProtector 2.5.2 版本增加了.NET 程序集合并功能,可以將 .NET 格式的可執(zhí)行程序(.exe)及動態(tài)庫(.dll)合并為一個模塊,可以消除模塊間的依賴,再對其進行保護可以起到更好的名稱混淆效果。
使用流程
可以在 Virbox Protector 工具菜單下打開.NET 程序集合并工具

合并步驟
1.將待合并的程序集全部拖到程序集列表里;
2.選擇一個主程序集;
3.設置合并后的主程序集存放位置,默認會生成一個Merge文件夾并存放在這里;
4.點擊合并;
合并完成后,可以刪除除了主程序集外的其它被合并的 dll,然后把合并后的主程序集替換原來的主程序集。

主程序集
合并后生成的主程序集,可以是 exe 或 dll。
合并注意事項
合并模塊必須是 .NET 格式的程序,可以是 .exe 或 .dll;
若可執(zhí)行程序(exe文件)為PE類型,對dll文件合并時要注意是否含有與exe同名的dll文件,一般exe文件會直接調(diào)用同名的dll文件,這個情況下進行合并時該dll文件必須為主程序集,否則合并后exe會運行失敗(例如demo.exe為PE程序,若有demo.dll文件,則該dll合并時為主程序集);
合并程序集不支持對系統(tǒng)的dll進行合并,只支持自己編譯的文件,例如Unity程序中的dll文件,只支持Assembly-Csharp*開頭的dll和自己開發(fā)的程序集dll,其他系統(tǒng)的dll文件并不支持合并;
除了合并的主程序集模塊,其它模塊不能被未合并的模塊依賴,否則運行時會因找不到模塊而異常;
不支持的文件拖入該功能界面時會被過濾,不會顯示在.NET程序集合并的窗口中;
.NET程序集合并不支持對加殼后的程序進行合并;
命令行工具實現(xiàn)合并
使用?-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