gpt4 book ai didi

c# - 是否可以将 'strip' 设为 .NET DLL?

转载 作者:太空狗 更新时间:2023-10-30 00:27:10 25 4
gpt4 key购买 nike

我使用模块化方法在 C# 中构建了一个简单的演示应用程序,因此它由一个可执行文件和几个 DLL 组成。假设我将它放在一个 zip 文件中并交给某人,唯一的目的是他们可以通过提取文件并双击 exe 来试用演示应用程序。

现在,据我了解,每个获得应用程序和 DLL 的人都可以在 Visual Studio 项目中添加对 DLL 的引用,然后开始使用它们拥有的任何函数/类,只要它们被声明为公共(public)即可。因此,他们可以获得比我希望他们访问的更多的东西。

有没有办法禁用它,并获得一个类似于 C++ DLL 的系统(例如,我可以给任何人很多 C++ DLL,如果他们没有头文件)?我能否以某种方式剥离 DLL,以便 exe 仍然可以使用它们,但不公开引用?或者我可以在代码中使用“此类仅可用于我构建的 DLL/exe”的属性吗?

最佳答案

您可以使用 InternalsVisibleToAttribute 并且不公开任何内容,但是...

如果您认为任何东西都可以阻止某人使用您的 DLL 中的非公共(public)类,那您就错了。具有完全信任的应用程序可以毫无问题地访问私有(private)和内部内容,或者它们可以反编译并重建包含所有公开内容的 DLL。

人们会建议混淆,但这并没有起到什么作用。

您应该阅读此答案(和问题,但主要是答案):C#: How to Make it Harder for Hacker/Cracker to Get Around or Bypass the Licensing Check?

关于c# - 是否可以将 'strip' 设为 .NET DLL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7697887/

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