tutorial online net decompile decompilador debugging portable-executable dotpeek

debugging - online - Generación de DotPeek PDB para ensamblajes sin directorio de depuración



decompiler exe (1)

Estoy intentando usar el servidor de símbolos dotPeek 1.4 de JetBrains, sin embargo, he encontrado algunos ensamblados de terceros que fallan, con el estado de dotPeek de:

Pdb has not been generated because assembly does not contain debug directory

Usando CFF Explorer, he descubierto que estos ensamblajes tienen valores de encabezado ejecutables (PE) portátiles "Debug Directory" vacíos.

¿Hay una manera (fácil) de editar el PE para agregar los valores del encabezado del Directorio de depuración?


de4dot crea un módulo ejecutable .net no válido a los ojos de dotPeek. Es un problema de dotPeek, no de4dot, sin embargo. Pero como no tenemos fuentes de dotPeek, deberíamos modificar de4dot para lograr la interoperabilidad. Modificar: Agregar el módulo de4dot.code / AssemblyModule.cs

writerOptions.WritePdb = true; module.CreatePdbState();

a la función de4dot.code.AssemblyModule.Save y complete la función pdb válida en el módulo exe.

Para ahorrar tiempo, puede usar el proyecto de4dot con mi parche: https://github.com/earnol/de4dot/commit/24c6e696fb9251f7d048ac33c88c710013a649d6 Agregará el directorio de depuración al ejecutable de salida. Simplemente borre el PDB resultante y ejecute dotPeek nuevamente. Funcionará a la perfección. Use algo como: de4dot.exe -f filein.exe -o fileout.exe -fpdb