Поделиться через


Запутывание сборок со строгими именами

Сборки со строгими именами имеют цифровую подпись. Это позволяет во время выполнения определить, была ли сборка изменена после подписания. Подпись представляет собой хэш SHA1, подписанный с помощью закрытого ключа из пары открытого/закрытого ключей RSA. Подпись и открытый ключ внедрены в метаданные сборки.

Поскольку Dotfuscator вносит изменения в сборку, важно, чтобы подписывание выполнялось после обработки сборки средством Dotfuscator.

ms227311.pro(ru-ru,VS.90).jpg Версия Dotfuscator Professional Edition может выполнить указанную операцию в ходе процесса запутывания. При использовании версии Dotfuscator Community Edition для подписывания потребуется выполнить отдельный этап построения после завершения запутывания.

Подписывание вручную после запутывания

ms227311.ce(ru-ru,VS.90).jpg Можно отложить подписывание сборки в процессе разработки до ее запутывания, а после него выполнить подписывание. Обратитесь к документации к .NET Framework для получения дополнительных сведений об отложенном подписывании сборок.

Для успешного запутывания сборки со строгими именами выполните перечисленные далее шаги.

  • Отложите подписывание сборки в процессе разработки. Это можно сделать путем внедрения в сборку двух настраиваемых атрибутов. Для C# можно добавить следующие строки в AssemblyInfo.cs:
[assembly:AssemblyKeyFileAttribute("keyfile.snk")] [assembly:AssemblyDelaySignAttribute(true)]
  • Где keyfile.snk представляет собой имя файла, в котором находится открытый ключ.
  • Воспользуйтесь средством работы со строгими именами (sn.exe), которое поставляется вместе с платформой .NET Framework, и выключите проверку строгих имен во время тестирования сборки:
sn -Vr TestAsm.exe
  • Выполните запутывание сборки с помощью средства Dotfuscator.
  • После запутывания включите проверку с помощью средства sn.exe. Это позволит отменить для сборки пропуск проверки:
sn -Vu TestAsm.exe 
  • Завершите процесс подписания сборки, где keyfile.snk представляет собой имя файла, в котором содержится закрытый ключ:
sn -R TestAsm.exe keyfile.snk

Не забудьте выключить проверку строгих имен при тестировании сборок с отложенным подписыванием.

© 2002-2007 PreEmptive Solutions. Все права защищены.