2009-02-27 19 views
17

¿Es prudente redistribuir los archivos pdb junto con una aplicación comercial?¿Cuánta información contienen los archivos pdb? (C#/.NET)

Ocasionalmente, estoy usando el seguimiento de la pila para obtener un registro de informes de error más detallado de las aplicaciones implementadas; ¿Se puede lograr esta funcionalidad sin depender de esos archivos?

Además, ¿cuántas sugerencias del código fuente original contienen estos archivos? ¿Sería más fácil aplicar ingeniería inversa a mi aplicación?

+0

Ayudaría si especificara qué entorno está utilizando. Muchas herramientas de desarrollo generan archivos PDB. –

Respuesta

11

Básicamente añade información para

  • Todos no públicas tipos, interfaces, estructuras, clases
  • variables locales en funciones
  • nombres archivos
  • Fuente de código en cuestión y los números de línea correspondientes en el código fuente .

que combinados hacen que la ingeniería inversa sea muy fácil para el código nativo.

Afortunadamente puede crear una versión reducida de sus archivos PDB que solo contiene información pública con el parámetro /PDBSTRIPPED.

Oh editó para agregar C# /. NET, por lo que no estoy seguro si es aplicable "PDBSTRIPPED". Sin embargo, las aplicaciones .NET son muy fáciles de reverse engineer incluso sin información de símbolos. No me importaría incluirlos en un proyecto .NET.

3

Los archivos administrados .pdb contienen la siguiente información:

  • Los nombres de todas las variables locales
  • Los nombres de todos los archivos de código fuente y el mapeo de instrucciones IL en las líneas dentro de esos archivos.

Todo lo demás está contenido en el binario, incluidos los nombres de todos los tipos, miembros y argumentos de función.

Fuente: PDB files: what every developer must know.

Cuestiones relacionadas