0

我们正在运行 .NET 应用程序,并My.Computer在 Obfuscar 混淆 dll 中引用。这些引用似乎在运行时引发了异常。例如:

代码:

Dim str As String = My.Computer.Name

信息:

The type initializer for 'a.aa' threw an exception.

内部异常:

   System.MissingFieldException: Field not found: 'a`1.W'.
   at a.aa.a`1..ctor()
   at a.aa..cctor()

从这些错误消息中,看起来 Obfuscar 正在混淆对My.Computer.Name. (.NET Reflector 显示aa.A.Name。)我不确定这有什么意义,因为它是一个“外部”参考。

使用不同的方法来获取计算机名称似乎确实有效,但我们My.Computer的代码中有很多引用,最好弄清楚如何让 Obfuscar 不破坏这些,而不是必须小心翼翼地绕过它们.

我想我正在寻找一个 Obfuscar XML 条目来跳过这些引用,除非有人有更好的想法。

4

1 回答 1

3

如果有人发现这一点,我们的解决方案是将以下标志设置为 false:

<Var name="HidePrivateApi" value="false" />

这显然降低了混淆的一些安全性,但它现在解决了我们的问题。

于 2017-10-06T17:00:00.907 回答