首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# ConfuserEX不使用嵌入式.dlls

C# ConfuserEX不使用嵌入式.dlls
EN

Stack Overflow用户
提问于 2022-04-29 10:53:06
回答 1查看 338关注 0票数 0

我使用的是Costura.Fody,它允许用户将依赖项嵌入到资源中。在我的例子中,它将.dll嵌入到我的.exe中.问题是,当我后来尝试使用ConfuserEX来防止反编译时,就会出现以下错误:

代码语言:javascript
复制
[ERROR] Failed to resolve dependency of 'Program.exe'.
Exception: dnlib.DotNet.AssemblyResolveException: Could not resolve assembly: Siticone.Desktop.UI, Version=2.0.9.0, Culture=neutral, PublicKeyToken=422d444a8a9fa6db
   at dnlib.DotNet.Extensions.ResolveThrow(IAssemblyResolver self, IAssembly assembly, ModuleDef sourceModule) in E:\Source\Public\Confuser2\dnlib\src\DotNet\IAssemblyResolver.cs:line 113
   at Confuser.Core.ConfuserEngine.Inspection(ConfuserContext context) in e:\Source\Public\Confuser2\Confuser.Core\ConfuserEngine.cs:line 264

如何嵌入我的.dlls并防止反编译?

EN

回答 1

Stack Overflow用户

发布于 2022-07-30 04:00:54

您的问题在于Costura将删除dll的事实。

请参见以下问题以解决问题:不能将Costura.Fody与ConfuserEx结合使用

确保在混淆时,dll与您的可执行文件位于同一个目录中。

如果您想要混淆依赖项本身--,例如您创建的自定义库--您必须做得更多。

就我个人而言,我是通过直接引用dll来完成的,我在我的主要项目的预构建事件中使用并混淆了它们。

我创建了两个蝙蝠脚本,一个用来构建我的依赖关系/库,还有一个用来混淆它们。

我的预建事件:

代码语言:javascript
复制
cd %cd%\..\..\..\..\
call dependency_builder.bat
if $(ConfigurationName) == Release (
call dependency_obfuscator.bat
)

"dependency_builder.bat“只使用msbuild构建我所有的依赖项,而"dependency_obfuscator.bat”则使用ConfuserEx2 CLI混淆它们。

这相当乏味,但就目前而言,这是我所能想到的最好的方法,也是混淆依赖关系的最佳方法。

希望这会有所帮助:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72056824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档