Pregunta

¿Cómo ofuscar las clases de proxy WCF usando Dotfuscator?Descargué la versión de prueba de Dotfuscator Pro Edition de su sitio web.Ofusqué mi archivo app.exe, todo estaba muy ofuscado pero las clases de proxy WCF no.(Le hice ILDASM al exe).

Las clases de WCF Proxy están revelando la estructura de mi aplicación. ¿Me falta alguna configuración en la aplicación Dotfuscator?

¿Existe una mejor manera de ocultar las clases de proxy del servicio WCF?

¿Fue útil?

Solución

De una forma u otra, WCF debe poder vincular elementos del contrato de datos de su servicio a las clases de proxy de su cliente.Por lo general, tiene poco valor ofuscar las clases de proxy y sus miembros, pero si desea ofuscarlos, puede establecer explícitamente el nombre de los tipos y sus miembros usando el Name parámetro de la [DataContract] o [DataMember] atributos (ej. [DataMember Name="ID"]).Una vez que haya hecho esto, puede deshabilitar la regla incorporada "Tipos y campos marcados como serializables" desde la pestaña Cambiar nombre -> Reglas integradas y asegurarse de que "Compatibilidad con el serializador XML" esté marcada en Cambiar nombre -> Opciones pestaña.La advertencia de este enfoque es que los nombres de las propiedades serializadas todavía se incluyen en su código (en los atributos) y aún se envían por cable.

Si necesita más protección y tiene control tanto del servicio como del cliente, una opción mejor pero más engorrosa podría ser colocar su contrato de servicio en su propio ensamblaje y procesarlo con Dotfuscator.Nuevamente, deshabilite la regla incorporada "Tipos y campos marcados como serializables" desde la pestaña Cambiar nombre -> Reglas integradas y asegúrese de que "Compatibilidad con el serializador XML" esté marcada en la pestaña Cambiar nombre -> Opciones.Ahora haga referencia a la DLL del contrato de servicio resultante tanto de su servicio como de su aplicación cliente.La desventaja de este enfoque es que todos los miembros del contrato tendrán nombres confusos (por ejemplo,"a") y deberá hacer referencia a ellos como tales en el código de su servicio y aplicación cliente.Puede examinar el archivo de mapa que produce Dotfuscator para entender los nombres renombrados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top