Parece que podría usar una combinación 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?¿Se puede usar Reflector para obtener el código fuente de una aplicación y luego depurar usando ese código fuente?
Respuesta
¡Reflector Pro le permite hacer exactamente esto!
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.
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-medio este método debería ser muy factible.
Dado que existen bastantes implementaciones nativas de C en el Marco NET, creo que esto * es muy poco probable *. – stephbu
No sugiero que pueda acceder a las implementaciones de C, pero si vuelve a compilar la fuente de .NET no hay ninguna razón por la que no pueda acceder al código que llama al código nativo. – Brownie
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 tienen que ser reparado 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 en MSIL y volviendo a compilar 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
No, es necesario el archivo (PDB) archivo de símbolos que pertenece a la aplicación que está intentando depurar.
Reflector le permite pasar de IL a código .NET legible, pero mantiene el significado solo 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 hacer que funcionara.
Configuring Visual Studio to Debug .NET Framework Source Code
MSDN: PDB Files
lo he visto y lo ha 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 de hacer, 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.
- 1. Editar código fuente al depurar
- 2. Depurar el código fuente de JBoss
- 3. ¿Cómo descompilar pdb para obtener el código fuente de C#?
- 4. Obtener código fuente HTML como una cadena
- 5. ¿Cómo se puede usar el Kindle como una herramienta de lectura de código fuente?
- 6. ¿Cómo se puede entender el código fuente de GNU?
- 7. Net :: HTTP obtener el código fuente y el estado
- 8. Fuente para programar el código fuente con LaTeX
- 9. ClearCase para el control de código fuente?
- 10. Código fuente de la aplicación Alarm Clock
- 11. Cómo obtener el código fuente de Chromium para Android
- 12. El mejor código fuente para Rubyist prometedor
- 13. php: Obtener código fuente html con cURL
- 14. código Java: buscando el código fuente
- 15. sobre el código fuente jsp
- 16. ¿Puedo usar .NET Reflector para modificar y volver a compilar el código rápidamente?
- 17. ¿Cómo depurar a través del código fuente de .NET Framework?
- 18. descompilar una aplicación binaria para volver al código fuente
- 19. SyntaxHighlighter v3.0.83 código fuente
- 20. ¿Se puede abrir el código fuente alojado en github ser de código cerrado?
- 21. Viendo el código fuente de una gema
- 22. ¿Dónde obtener el código fuente completo para rt.jar?
- 23. Python reflexión - ¿Puedo usar esto para obtener el código fuente de una definición del método
- 24. ¿Dónde encontrar el código fuente de BitTorrent?
- 25. Código fuente para aplicaciones de Android?
- 26. Dónde está el código fuente para Html.TextBoxFor
- 27. Organizador R Fuente Código
- 28. C++ código fuente de vector
- 29. Android - Código fuente para phonegap cordova.jar
- 30. Unix V6 Código fuente
También es por eso que crearon el EULA. – TraumaPony