gpt4 book ai didi

c# - HASP 供应商代码是否应该加密/混淆?

转载 作者:太空狗 更新时间:2023-10-30 01:05:09 34 4
gpt4 key购买 nike

这是关于 SafeNet/Aladdin Sentinel HASP key 的。我已经发布到他们的网站,但以防万一其他人知道答案或发现有用的答案我也发布在这里。

根据 SafeNet 在“Software Protection and Licensing Guid.pdf”中提供的文档,我们应该对供应商代码保密,对吧?

好吧,如果我构建“\Samples\Runtime\csharp\”中提供的示例,然后使用 Envelope 保护应用程序,然后在 JetBrains dotPeek 中反编译 Enveloped 应用程序,我可以很容易地在那里看到供应商代码字符串。似乎 Envelope 不会混淆 const 字符串。或者可能是类(class)字符串,我不知道。

这是使用供应商代码的推荐方式吗?看起来不是很隐秘。如果我将供应商代码字符串放入函数中的临时变量中,它就会被混淆。是不是应该这样做?如果是这样,示例代码不应该反射(reflect)这一点吗?

谢谢。

最佳答案

我们也注意到了同样的事情。 const 字符串未被混淆的原因可能是因为 const 变量是 compile time constant。 ,它允许编译器在编译时用常量值本身替换对 const 变量的引用。因此,在封装过程开始时,基本上没有要混淆的 const 字符串字段。 (这并不完全正确 - const 的定义保留在 IL 中,但仅用于文档目的;它未被任何代码引用。)

我们处理这个问题的方法是使用 static readonly 字符串,在 static 构造函数中初始化。这样做会将字符串值存储为运行时常量,从而允许封装进程正确访问它们以进行混淆。 (正如您提到的,这是通过反编译程序集来验证的。)

关于c# - HASP 供应商代码是否应该加密/混淆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20053539/

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