堆栈跟踪在调用堆栈中用下划线替换名称

问题描述:

我最近在尝试设置Aspose的许可证文件时遇到了一个异常。我的问题不是抛出异常,而是堆栈跟踪的格式。前两个调用堆栈位置将所有名称替换为下划线。堆栈跟踪在调用堆栈中用下划线替换名称

System.NullReferenceException: Object reference not set to an instance of an object. at _ ._(Stream _) at _ ._(String _, Assembly _) at Aspose.Pdf.License.SetLicense(String licenseName)

是什么原因导致他们出现这样?我最初的想法是混淆,但在搜索时,我发现使用重命名的方法和类型的代码混淆了,而不是完全删除名称。

+0

这很可能是由于变量名不是(必须)转换成编译后的程序集,特别是在编译发布时。 – HimBromBeere

+0

不是直接发布到你的问题,但[this](https://stackoverflow.com/questions/43017481/how-to-read-interpret-a-raw-c-sharp-stack-trace-correctly)可能会给你有些洞察力 –

+1

它是混淆的代码。对于任何执照检查来说,这当然并不罕见。看到产品无法正常工作,即使您拥有良好的许可证,并且需要一个通用网站以获得支持,始终是停止使用该产品的一个很好的理由。人生如此短暂。 –

Aspose库肯定是通过一些手段混淆。在dotPeek中打开库,所有的变量和属性都丢失了。

例子:

this. = value;

不是一个真正的完整的答案,因为它并不能说明使用什么工具,以及如何实际处理变量映射,但足以关闭。