我有一个在机器上运行的 C#.NET 应用程序。如何在运行时计算整个代码的校验和?
笔记:
我不想计算正在使用的图像的校验和,而是实际的代码部分。
我只会使用代码签名,但如果您真的想推出自己的解决方案(这可能是个坏主意。代码签名是一件好事),您可以使用反射来查看 IL 代码并基于此计算校验和。这不是一个很好的解决方案,并且可能会导致一些奇怪的错误,所以请为自己省点麻烦并使用代码签名。
我从来没有用过这个,但是:
使用反射,您可以导航到GetILAsByteArray并执行校验和(每个方法)。
但我认为使用代码签名或 Assembly.GetExecutingAssembly 然后对 .dll 或 .exe 进行校验和会容易得多。
在运行时,您无权访问原始编写的源代码。
您的程序集上的一个强大的名称可以做到这一点 - 但您必须相信它正在像宣传的那样工作。您要解决的确切问题是什么?