【问题标题】:Stack trace replaces names with underscores in call stack堆栈跟踪将名称替换为调用堆栈中的下划线
【发布时间】:2018-03-15 19:06:48
【问题描述】:

我最近在尝试为 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)

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

【问题讨论】:

  • 这可能是由于变量名称没有(必然)转换到编译后的程序集中,特别是在编译发布时。
  • 不是针对您的问题的直接帖子,但this 可能会给您一些见解
  • 这是混淆代码。对于进行许可证检查的任何事情来说,这当然并不罕见。看到产品无法工作,即使您拥有良好的许可证,并且需要一个通用网站以获得支持,这始终是停止使用它的一个很好的理由。生命太短暂了。
  • Aspose 是一组很棒的库,但它们被混淆了。您是否将许可证设置为嵌入式资源? (获得更好的异常很高兴,但除非你是完美的 Hans,否则有时会出现描述不佳的异常和错误。)

标签: c#


【解决方案1】:

Aspose 库肯定是通过某种方式混淆的。在dotPeek中打开库,所有的变量和属性都不见了。

例子:

this. = value;

并不是一个完整的答案,因为它没有解释使用了什么工具以及它如何实际处理变量映射,但足以关闭。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-01
    • 2011-01-03
    • 2011-11-20
    • 1970-01-01
    • 2016-05-14
    • 2015-10-01
    • 2011-05-25
    • 2011-05-13
    相关资源
    最近更新 更多