gpt4 book ai didi

.net - 混淆混合 .NET DLL 的最佳产品

转载 作者:行者123 更新时间:2023-12-03 18:30:35 26 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

8年前关闭。




Improve this question




我有一个 .NET DLL 和应用程序。 DLL 是用 C++/CLI 编写的,它是“混合的”,即部分托管代码和部分本地代码。

我有两个目标:
1.混淆所有托管代码,使其无法反汇编
2. 混淆混合 DLL 的公共(public)方法/类,使任何人都不能在自己的应用程序中使用 DLL,即打乱公共(public)名称。

是的,我知道混淆并不完美,人们仍然可以弄清楚并等等。这两个目标是管理要求。我发现的唯一可以处理这个问题的应用似乎是 Dotfuscator Professional Edition。不幸的是,它是那些非常烦人的应用程序之一,您必须乞求推销员告诉您价格。有谁知道另一种解决方案,或者知道购买便宜的合法副本的好地方吗?

不要告诉我用托管代码重写 DLL,这需要一个月的工作,而且我永远不会得到批准。 :-)

请注意,我对混淆的效果并不特别偏执。任何打乱应用程序中所有方法和类的名称的东西都可能足够好。

以下是我尝试过的其他混淆器:

  • Dotfuscator 社区版随 Visual Studio 2008 提供,但不支持混合程序集。
  • Eazfuscator .NET 简单且免费,但不支持混合程序集。
  • {smartassembly} 的单个许可证为 500 美元。它有一些有趣的特性,但不支持混合程序集。
  • 蝾螈是800美元。声称完全支持混合程序集,但每当我尝试使用混淆的 dll 时,应用程序就会崩溃
  • .NET Reactor 的单个开发人员许可证价格为 180 美元。它支持混合 DLL 的“部分”混淆。不幸的是,如果你混淆了 DLL 上的公共(public)类型,它就不起作用,.exe 找不到类。它能够将 DLL 合并/打包到 .exe 中,但是当您使用混合 DLL 执行此操作时,它不起作用(exe 找不到 DLL 的程序集,即使它是 .exe 的一部分)
  • Skater 是 300 美元的单张执照。我在他们的网站上没有看到任何声称它支持混合程序集的内容,而且我厌倦了尝试应用程序却只是感到失望,所以我假设它不支持。

  • 我还尝试过 Microsoft 的 ILMerge,看看我是否可以将 DLL 与 .exe 合并,然后进行混淆,但似乎混合 DLL 也会窒息。

    关于 Dotfuscator 的替代品或购买合法副本的好地方有什么建议吗?我发现几个无名网站声称卖得便宜,但我认为那些是俄罗斯盗版版本。

    最佳答案

    对于同一个问题,我尝试了几种解决方案。对于这个问题,没有一个很好的解决方案。 LibZ是 ILMerge 的不错替代品。只需将程序集打包到程序的资源中,然后从内存中加载所使用的程序集,您可能会变得很可爱。如果您混淆可执行文件,至少这会增加另一个级别的间接性。

    关于.net - 混淆混合 .NET DLL 的最佳产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/370325/

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