Запутывать классы прокси WCF
Как запутать прокси-классы WCF с помощью Dotfuscator? Я загрузил Dotfuscator Pro Edition Trial с их сайта. Я запутал свой файл app.exe, все было хорошо запутано, но прокси-классов WCF не было. (Я ILDASMed exe).
Прокси-классы WCF выдают структуру моего приложения. Есть ли какие-либо настройки, которые отсутствуют в приложении Dotfuscator?
Есть ли лучший способ скрыть прокси-классы службы WCF?
1 ответ
Так или иначе, WCF должен иметь возможность связывать элементы в контракте данных вашей службы с прокси-классами вашего клиента. Обычно мало что значит запутывать прокси-классы и их члены, но если вы хотите запутать их, вы можете явно указать имя типов и их членов, используя Name
параметр [DataContract]
или же [DataMember]
атрибуты (например, [DataMember Name="ID"]
). Сделав это, вы можете отключить встроенное правило "Типы и поля, помеченные как сериализуемые" на вкладке "Переименовать -> Встроенные правила" и убедиться, что в "Переименовать -> Параметры" установлен флажок "Совместимость с сериализатором XML". вкладка. Предостережение в этом подходе состоит в том, что имена сериализованных свойств все еще включены в ваш код (в атрибутах) и все еще передаются по проводам.
Если вам требуется дополнительная защита и вы контролируете как службу, так и клиента, лучшим, но более обременительным вариантом может быть помещение вашего контракта на обслуживание в его собственную сборку и обработку в Dotfuscator. Снова отключите встроенное правило "Типы и поля, помеченные как сериализуемые" на вкладке "Переименовать -> Встроенные правила" и убедитесь, что на вкладке "Переименовать -> Параметры" установлен флажок "Совместимость с сериализатором XML". Теперь ссылайтесь на полученную DLL-библиотеку контрактов на обслуживание из вашей службы и из вашего клиентского приложения. При таком подходе компромисс заключается в том, что все участники договора будут иметь запутанные имена (например, "a"), и вам придется ссылаться на них как таковые в коде вашей службы и клиентского приложения. Вы можете изучить файл карты, который производит Dotfuscator, чтобы понять смысл переименованных имен.