Задать вопрос

Как избежать разницы контрольных сумм при пересборке?

Всем привет!
Помогите, плиз, разобраться со следующей проблемой.
Ввели у меня на работе систему контроля версий, пересборки и прочие радости. Это, конечно, здорово и радости моей не было предела, однако, параллельно создали группу, занимающуюся аудитом всей этой штуки. Аудиторы требуют, чтобы после каждой пересборки в Jenkins'е, все файлы релиза сопровождались контрольными суммами. Тут-то у меня и возникли проблемы, ибо я единственный использую .Net.
Собственно, проблема следующая: после каждой пересборки, у всех файлов релиза(dll, exe) меняется контрольная сумма.
Написал мелкую утилиту, занимающуюся чисткой PE заголовка от контрольной суммы и даты сборки - помогло частично, различий стало меньше.
Нашел исходники еще одной мелкой утилитины, чистящей файлы от MVID'а.
А вот как избавиться от последнего отличия - записи , сопровождающейся GUID'ом, который тоже меняется при каждой сборке? Подобный вопрос нашел на stackoverflow, но там ничего полезного в ответах.
Мозг уже не соображает как решить проблему. Спасите, плиз.
  • Вопрос задан
  • 2695 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
aush
@aush
the C# compiler was not designed to be a component of a security system, so don't use it as one

Eric Lippert

Вообще, то, что вы пытаетесь "вычистить" файлы от отличий, автоматически должно делать сверку контрольной суммы невалидной с точки зрения вашей СБ.
Ответ написан
vipuhoff
@vipuhoff
Чек суммы высчитываются не по "признакам" а по составу "массива байт", из которых состоит приложение и будет "иной" даже если изменить 1 байт, в этом и смысл чек суммы, то есть сделать "другое" приложение с "той же" чек суммой невозможно по определению, если конечно мы говорим о MD5 или подобной.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы