Вопрос

Как запутать прокси -классы WCF с помощью Dotfuscator?Я скачал пробную версию Dotfuscator Pro Edition с их веб-сайта.Я запутал свой файл app.exe , все было хорошо запутано, но прокси-классы WCF - нет.(Я удалил исполняемый файл).

Прокси-классы WCF предоставляют структуру моего приложения.Есть ли какие-либо настройки, которых мне не хватает в приложении Dotfuscator?

Есть ли лучший способ скрыть прокси-классы службы WCF?

Это было полезно?

Решение

Так или иначе, WCF должен иметь возможность привязывать элементы в контракте данных вашей службы к прокси-классам вашего клиента.Обычно не имеет большого значения обфускация прокси-классов и их членов, но если вы действительно хотите их обфускировать, вы можете явно задать имена типов и их членов, используя Name параметр системы [DataContract] или [DataMember] атрибуты (например. [DataMember Name="ID"]).После того, как вы это сделаете, вы можете отключить встроенное правило "Типы и поля, помеченные как сериализуемые" на вкладке Переименовать -> Встроенные правила и убедиться, что на вкладке Переименовать -> Параметры установлен флажок "Совместимость с XML serializer".Предостережение к этому подходу заключается в том, что имена сериализованных свойств по-прежнему включены в ваш код (в атрибутах) и по-прежнему передаются по проводам.

Если вам требуется дополнительная защита и вы контролируете как службу, так и клиента, лучшим, но более громоздким вариантом может быть размещение вашего сервисного контракта в собственной сборке и обработка его с помощью Dotfuscator.Опять же, отключите встроенное правило "Типы и поля, помеченные как сериализуемые" на вкладке Переименовать -> Встроенные правила и убедитесь, что на вкладке Переименовать -> Параметры установлен флажок "Совместимость с XML serializer".Теперь обратитесь к результирующей библиотеке DLL service contract как из вашей службы, так и из вашего клиентского приложения.Компромисс с таким подходом заключается в том, что все участники контракта будут иметь запутанные имена (например."a"), и вам придется ссылаться на них как на таковые в коде вашего сервиса и клиентского приложения.Вы можете изучить файл карты, созданный Dotfuscator, чтобы понять смысл переименованных имен.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top