Запутывание сборок со строгими именами
Сборки со строгими именами имеют цифровую подпись. Это позволяет во время выполнения определить, была ли сборка изменена после подписания. Подпись представляет собой хэш SHA1, подписанный с помощью закрытого ключа из пары открытого/закрытого ключей RSA. Подпись и открытый ключ внедрены в метаданные сборки.
Поскольку Dotfuscator вносит изменения в сборку, важно, чтобы подписывание выполнялось после обработки сборки средством Dotfuscator.
Версия Dotfuscator Professional Edition может выполнить указанную операцию в ходе процесса запутывания. При использовании версии Dotfuscator Community Edition для подписывания потребуется выполнить отдельный этап построения после завершения запутывания.
Подписывание вручную после запутывания
Можно отложить подписывание сборки в процессе разработки до ее запутывания, а после него выполнить подписывание. Обратитесь к документации к .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. Все права защищены.