gpt4 book ai didi

c# - 混淆器之后的 CSharpCodeProvider

转载 作者:行者123 更新时间:2023-11-30 17:14:08 30 4
gpt4 key购买 nike

我正在使用一个在运行时编译的脚本系统,它运行良好,但是当我使用一些代码混淆器对“坏人”隐藏我的代码时,脚本停止工作,它返回一个错误:

Error: CS0234

The type or namespace name "Objects" does not exist in the namespace "TestProgram" (are you missing an assembly reference?)

Error: CS0246

The type or namespace name "Scripter" could not be found (are you missing a using directive or an assembly reference?)

你知道有没有办法解决它?我尝试了很多混淆器,看起来它们都对我的脚本编写器做了同样的事情。

最佳答案

您很可能不需要混淆您的“脚本”尝试访问的公共(public)类型。

这可以通过在 ObfuscationAttribute 中包含适当的属性 ( Exclude ) 来使用大多数更好的混淆器来完成。根据需要在类型或方法上将属性设置为 true:[Obfuscation(Exclude=true)]


编辑:

您可以根据需要通过修饰适当的类型来使用此属性,即:

[Obfuscation(Exclude=true, ApplyToMembers=true)]
public class Objects
{
// ...

这将导致大多数混淆器(尽管有些需要配置以注意此属性)不混淆类型。一些混淆器会混淆内部成员,但不会混淆公共(public) API。这取决于您使用的实际工具,我建议查看他们的文档以了解具体信息。

关于c# - 混淆器之后的 CSharpCodeProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9073029/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com