【问题标题】:How can I calculate the checksum of code at runtime?如何在运行时计算代码的校验和?
【发布时间】:2009-03-04 14:16:59
【问题描述】:

我有一个在机器上运行的 C#.NET 应用程序。如何在运行时计算整个代码的校验和?

注意:

我不想计算正在使用的图像的校验和,而是实际的代码部分。

【问题讨论】:

  • 你需要更清楚。你所说的代码是什么意思——C#/VB 源代码、IL、机器代码图像,还是别的什么?为什么要校验和(不能只使用代码签名)?

标签: c# .net checksum


【解决方案1】:

我没用过,但是:

使用反射,您可以导航到 GetILAsByteArray 并执行校验和(每个方法)。

但我认为使用代码签名或 Assembly.GetExecutingAssembly 然后对 .dll 或 .exe 进行校验和会容易得多。

【讨论】:

    【解决方案2】:

    我只会使用code signing,但如果您真的想推出自己的解决方案(这可能是个坏主意。代码签名是件好事)您可以使用反射来查看 IL 代码并计算校验和基于此。这不是一个很好的解决方案,并且可能会导致一些奇怪的错误,所以请为自己省点麻烦并使用代码签名。

    【讨论】:

      【解决方案3】:

      在运行时,您无权访问原始编写的源代码。

      【讨论】:

        【解决方案4】:

        您的程序集上的强名称可以做到这一点 - 但您必须相信它会像宣传的那样工作。 您要解决的确切问题是什么?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-02-04
          • 1970-01-01
          • 1970-01-01
          • 2013-11-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多