Я создаю программу, которая должна сравнивать два файла формата Portable Executable, чтобы увидеть, были ли они скомпилированы из одного и того же кода.Есть поля, которые всегда будут отличаться, даже если код не был изменен.Мое решение состоит в том, чтобы загрузить файлы в мою программу и установить все временные метки и контрольные суммы на ноль, а затем сравнить их.Это прекрасно работает для exe-файлов, но .NET DLL также имеют поле ревизии в потоке # ~, к которому гораздо сложнее получить доступ.Мне нужно было бы проанализировать все заголовки, которые кажутся довольно утомительными, и я был бы счастлив, если бы я мог избежать этого.
Теперь я думаю просто игнорировать весь поток # ~.Могу ли я сделать это и при этом убедиться, что файлы эквивалентны?Чтение времени во всех заголовках кажется пустой тратой времени, когда мне просто нужен адрес одного поля.Если я не могу сделать это, не могли бы вы предложить другие, менее трудоемкие решения?
Могу добавить, что я программирую на C #.