代码之家  ›  专栏  ›  技术社区  ›  Alistair Evans

.NET程序集是否曾经更改?

  •  5
  • Alistair Evans  · 技术社区  · 15 年前

    我需要提供所有程序集的32位CRC(循环冗余检查),这些程序集被存储(用于发布控制目的),然后可以与系统上稍后出现的程序集进行比较(以检查发布是否以某种方式损坏)。

    计算程序集本身的CRC没有问题,我的问题是:

    .NET程序集是否曾经更改?也就是说,程序集的实际二进制内容在安装到目标系统上之后是否会发生变化(出于任何原因)?如果是这样,那么CRC也会改变。

    注意,我只指与我的软件一起打包的程序集,而不是标准系统程序集,这些程序集没有经过检查。

    干杯

    4 回复  |  直到 15 年前
        1
  •  6
  •   Hans Passant    15 年前

    你在重新发明轮子,强命名已经做到了。篡改一个程序集使其具有正确的CRC32非常简单。破坏一个强名称不是密码安全的。

        2
  •  4
  •   Philippe Leybaert    15 年前

    如果不更新程序集(覆盖它们),它们将永远不会更改。

        3
  •  0
  •   Doc Brown    15 年前

    它们应该只在安装或更新时更改,除非程序员在其程序中包含了一些讨厌的黑客。但是,如果您有疑问,为什么不直接撤销编写或修改相应文件的用户权限呢?

        4
  •  -1
  •   fusi    15 年前

    我记得在某个地方读到过.NET优化程序搜索并通过任何程序集来“优化”它们吗?在安装之后听说过这样做-但我从未亲自调查过-我想他们可能不会改变,但我不确定你是否能真正保证

    试试看!祝你好运