¿Es visible el GUID al compilar un proyecto .NET?

2

Sé si una persona tiene un GUID de una máquina que esa persona puede averiguar si otra guía pertenece a esa máquina.

En un proyecto .NET (csproj y el archivo de solución de estudios visuales) se generan GUID. Si tuviera que compilar este proyecto, ¿los GUID estarían en mi ejecutable, por lo tanto, una persona puede saber si un programador desarrolla dos proyectos diferentes?

    
pregunta 18.05.2012 - 12:39
fuente

2 respuestas

4

No. EDITAR: En realidad, posiblemente. Vea abajo.

El compilador realmente solo se preocupa por los archivos de origen. Si desea que un GUID esté en el ensamblaje, debe codificarlo. Así es como funcionan las cosas de interoperabilidad COM: decore el ensamblado en código con un atributo que contiene el GUID.

Sin embargo, si un GUID está codificado en el código fuente de algo como COM, y el GUID se generó en la misma máquina, utilizando la versión 1, es posible que pueda rastrear la máquina en la que se codificó. Consulte aquí: enlace

EDITAR: Resulta que estoy un poco equivocado. Es un detalle de implementación en uno de los compiladores, pero en la versión actual del compilador se usa un GUID para distinguir las versiones de compilación, por ejemplo. Cada vez que presionas F5, todas las compilaciones, independientemente del cambio de código, son únicas por computadora.

    
respondido por el Steve 18.05.2012 - 23:18
fuente
1

Los GUID en los archivos de proyecto y solución se generan cuando creas los archivos de proyecto y solución, por lo que copiar la fuente y recompilar en otra máquina probablemente no cambiará los GUID (no lo he probado, pero supongo que sí » Solo cambiaré cuando muevas cosas en Visual Studio).

Además, no creo que esos GUID terminen en el ejecutable final, debería preocuparse más por los GUID definidos en la fuente, principalmente en Propiedades / AssembyInfo.cs (pueden definirse en otra parte, pero ahí es donde Visual Studio los pone por defecto). Estos GUID no cambian si no los reemplaza explícitamente, por lo que si crea un proyecto de código abierto, no es posible rastrearlo en su computadora, por ejemplo, el GUID de la biblioteca de tipos de ensamblaje.

Dicho esto, ¿quién sabe qué está agregando el compilador .Net como metadatos adicionales? ¿Es posible que genere GUIDS para la comparación de versiones entre los archivos PDB y el ejecutable (sin embargo, supongo que es más probable un hash)? La mejor manera de probar esto es construir el mismo proyecto en dos máquinas y luego comparar los binarios.

Fuera del tema: no ser inquisitivo, pero tengo bastante curiosidad acerca de la preocupación?

    
respondido por el Louis Somers 19.05.2012 - 12:41
fuente

Lea otras preguntas en las etiquetas