.net - net - ¿Puedes usar Reflector para obtener el código fuente de una aplicación y luego depurar usando ese código fuente?
dot net peek (7)
Parece que podría usar una mezcla de Relector y un Depurador para poder depurar cualquier aplicación .NET SIN tener el código fuente en absoluto. es posible? ¿Alguien ha visto esto antes?
El complemento de Deblector para Reflector le permite depurar directamente desde Reflector.
Es posible pero no realmente práctico en aplicaciones más grandes y complejas, especialmente cuando se han utilizado muchas de las estructuras más recientes, como lambdas e inicializadores (se obtiene un montón de nombres de variables que contienen signos de dólar como CS $ 4 $ 0000 que deben repararse manualmente) . Incluso las declaraciones de cambio simples pueden causar un código de spaghetti muy feo lleno de declaraciones goto en Reflector.
He tenido mucha más suerte descompilando a MSIL y recompilando en modo de depuración. A continuación, puede colocar puntos de interrupción en los archivos IL y utilizar todas las funciones habituales de depuración en VS. MSIL parece un poco atemorizante al principio, pero se entiende muy rápido.
Este excelente artículo explica cómo hacerlo: http://www.codeproject.com/KB/dotnet/Debug_Framework_Classes.aspx
Intenté esto hace mucho tiempo sin éxito. El reflector ha mejorado mucho desde entonces, así que me imagino que será posible hoy.
De hecho, da un poco de miedo si lo piensas bien. Alguien podría descompilar su aplicación y tener el código completo, luego modificarlo y distribuir su propia versión del mismo. Todo sin ser fuente abierta. Pero de nuevo es por eso que "ellos" crearon ofuscadores.
Lo he visto y lo he hecho antes. Lo usé para mostrarle a mi jefe que nuestra aplicación no estaba tan protegida como él pensaba. Tomó una DLL, obtuvo el código fuente, y bam, prácticamente tuvo un ataque al corazón.
Hay escenarios en los que .Net Reflector se rompe, pero es difícil hacerlo, lo sé porque lo he intentado activamente. Los buenos ofuscadores harán que el código sea tan inmanejable / ilegible (como sobrecargar la función "a" para hacer una tonelada de cambios dependiendo de los parámetros) que ver la fuente no sirve, pero aún puedes depurar: buena suerte qué está pasando.
No puedo encontrar el enlace, pero alguien usó la fuente del reflector para compilar una versión de depuración del marco 1.1 que podría atravesar. Intenté con el framework 2.0 y encontré demasiados errores para que valga la pena.
Si desea probar este inicio con un complemento como FileDisassembler . En mi breve experiencia con esto, descubrí que había algunos errores para corregir pero no para mal.
Con una biblioteca de tamaño pequeño-mediano, este método debería ser muy factible.
No, necesita el archivo de archivo de símbolos (.PDB) que pertenece a la aplicación que está tratando de depurar.
Reflector le permite pasar de IL a código .NET legible, pero solo mantiene el significado, no el código exacto escrito por el desarrollador. Entonces, incluso si tuviera el PDB y la fuente de Reflector, no coincidiría para la depuración.
Supongo que podría usar la salida de fuente del reflector para crear un proyecto .NET y generar su propia versión del ensamblado que desea depurar. Sin embargo, normalmente es un verdadero dolor y, en el caso del framework .NET, Microsoft publica la información de depuración para que la use cualquiera que esté interesado.
Recuerdo que en un momento había un complemento para depurar en Reflector, pero nunca pude hacerlo funcionar.
Configurar Visual Studio para depurar el código fuente de .NET Framework
MSDN: archivos PDB
¡Reflector Pro le permite hacer exactamente esto!