2010-01-20 5 views
5

J'ai besoin de fournir un CRC (Cyclic Redundancy Check) de 32 bits de tous les assemblages, qui est stocké (à des fins de contrôle de libération), et peut ensuite être comparé aux assemblages présents sur un système à une date ultérieure. afin de vérifier que la version n'a pas été corrompue d'une manière ou d'une autre).Les assemblages .NET changent-ils toujours?

Je n'ai aucun problème du calcul de la CRC des assemblées elles-mêmes, ma question est la suivante:

Est-ce que les assemblies .NET changer? C'est à dire. Le contenu binaire réel de l'assemblage change-t-il (pour une raison quelconque) après son installation sur le système cible? Si c'est le cas, le CRC changera aussi.

Remarque, je ne parle que des assemblages qui sont fournis avec mon logiciel, pas des assemblys système standard, ceux-ci ne sont pas vérifiés.

Vive

+0

N'est-ce pas la signature de vos assemblys? – Svish

+0

Cela est plus dû à l'approche de ma société en matière de gestion des versions qu'autre chose. La chose CRC provient d'un passé de développement principalement intégré, et ce processus est appliqué sur tout travail de développement Windows. – Kazar

Répondre

6

Vous êtes en train de réinventer une roue, une dénomination forte le fait déjà. Falsifier un assemblage pour qu'il ait le bon CRC32 est assez simple. Breaking un nom fort n'est pas, il est cryptographiquement sécurisé.

+0

Oui, .NET dispose déjà d'un mécanisme intégré pour gérer vos besoins, que vous préférerez certainement sur une méthode personnalisée. –

+0

Merci pour la recommandation alternative, et vous avez raison, c'est une approche privilégiée, cependant, c'est la politique de l'entreprise dictée par des ingénieurs plus expérimentés que moi-même. Pas beaucoup que je puisse faire vraiment. – Kazar

4

Si vous ne mettez pas à jour les ensembles (les écraser), ils ne changeront jamais.

+0

Ou les assemblages peuvent être re-signés –

-1

Je me souviens d'avoir lu quelque part que l'optimiseur .net cherchait et passait par des assemblages pour les 'optimiser'? J'ai entendu cela après une installation - jamais regardé moi-même si - je suppose qu'ils ne changent probablement pas mais je ne sais pas si c'est quelque chose que vous pouvez vraiment garantir

l'essayer et voir! bonne chance

+3

Vous parlez de Ngen.exe. Il crée un autre fichier. –

0

Ils ne doivent être modifiés que lors de l'installation ou de la mise à jour, sauf si un programmeur a inclus un hack malveillant dans son programme. Mais si vous avez un doute, pourquoi ne révoquez-vous pas les droits d'utilisateur pour l'écriture ou la modification des fichiers correspondants?

Questions connexes