dotPeek puede decompilar cualquier agrupación .NET en código C# equivalente y, opcionalmente, mostrar el código IL subyacente.
dotPeek puede trabajar con una variedad de formatos, tales como bibliotecas (.dll), ejecutables (.exe) y archivos de metadatos (.winmd).
dotPeek también puede decompilar archivos .baml, lo que le permite reconstruir las definiciones de interfaz de usuario XAML.
Además de agrupaciones y ejecutables tradicionales, puede hacer que dotPeek abra archivos (.zip, .vsix o .nupkg) y carpetas. También puede localizar y cargar paquetes de NuGet (y sus dependencias) desde cualquier fuente de paquetes en línea, o cargar paquetes incluidos en un archivo packages.config en su proyecto de Visual Studio.
El código decompilado es mejor que nada, pero a veces puede hacer coincidir una agrupación con su código fuente, entonces, ¿por qué no aprovecharlo? dotPeek puede identificiar código fuente local basado en carpetas PDB, o recuperar código fuente de servidores de origen como Microsoft Reference Source Center o SymbolSource.org. Además, dotPeek puede generar archivos PDB.
Use el menú desplegable del modo de navegación de la barra de menú para elegir si solo desea que dotPeek decompile agrupaciones, o intente encontrar el código fuente si es posible.
Puede elegir mostrar ciertas transformaciones del compilador, con lo cual hará que la estructura de código mostrada por dotPeek sea muy similar a lo que lo convierte el compilador. Esto ayuda a ver cómo el compilador maneja lambdas, clausuras y propiedades autoimplementadas, entre otras cosas.
La ventana de Process Explorer (Explorador de procesos) muestra todos los procesos en ejecución actualmente y permite explorar sus módulos y decompilar aquellos que sean ensamblados .NET. Puede elegir mostrar u ocultar procesos y módulos nativos, o activar la vista de jerarquía de proyecto.
Filtre la lista para encontrar un módulo o proceso que busca, y luego añada sus ensambles al Assembly Explorer (Explorador de ensambles) para continuar la investigación.
Cuando desee analizar en mayor profundidad que el código fuente, puede navegar al código IL desde cualquier punto en el C# decompilado.
La forma más fácil de hacer esto es mostrar el código IL en una ventana de herramientas separada que está sincronizada con el visor de código principal.
dotPeek puede mostrar código IL tanto para código decompilado como para código fuente reproducido a partir de archivos de símbolos.
Alternativamente, puede elegir mostrar el código IL como comentarios al código C# decompilado, que combina efectivamente su visor de texto predeterminado y la ventana de IL Viewer normalmente separada, todo en una vista.
dotPeek acepta la misma variedad de temas de colores que Visual Studio.
Por ejemplo, puede seleccionar el tema Azul u Oscuro, o elegir sincronizar su preferencia de esquema de colores con la configuración de Visual Studio.
Como dotPeek está basado en la potente arquitectura de información del código de ReSharper, le permite navegar a agrupaciones de una forma contextual o indiferente al contexto, obtener un rápido resumen de lo que hay dentro de cada archivo decompilado, definir marcadores y explorar las cadenas hereditarias.
Con dotPeek, tiene varias opciones para buscar dónde se hace referencia a símbolos de código.
Invoque Buscar usos para encontrar todos los usos de un símbolo (tales como un método o propiedad) en todas las agrupaciones cargadas. Los usos se mostrarán en la ventana de herramientas Resultados de búsqueda, donde puede agruparlos, navegar entre ellos y abrir el área de vista de código.
También hay una función Buscar usos avanzada, que es una versión más detallada de Buscar usos que le ayudará a ajustar los criterios de búsqueda al limitar el alcance de la búsqueda y otros detalles.
dotPeek resalta automáticamente todos los usos visibles del símbolo bajo el signo de intercalación, de forma muy similar a cómo lo hacen las versiones recientes de Visual Studio. Esto ayuda a mejorar la legibilidad del código decompilado, especialmente cuando está lidiando con identificadores ofuscados.
Además, si desea ver todos los usos en el archivo, estén o no visibles actualmente, use Resaltar usos en el archivo. Esto resaltará todos los usos de un símbolo dado en el archivo actual, usando dos colores distintos para los usos de escritura y lectura.
Use Ir a miembro del archivo para obtener un rápido resumen de, y navegar a, los miembros de un documento que representan un tipo decompilado. Ingrese partes de nombres de miembros y navegue directamente hasta ellas.
Alternativamente, si desea una vista estática de los miembros del documento actual, abra y fije la ventana de herramientas Estructura de archivo. También puede fijar esta vista: seleccione la ventana de herramientas y simplemente empiece a escribir caracteres para enfocarse únicamente en los miembros de tipos que le interesen.
Al indexar todas las agrupaciones de su lista de agrupaciones, así como todas las referencias, dotPeek brinda dos funciones para saltar rápidamente a un código específico:
Si hay líneas de código decompilado que considera importantes y desea volver a ellas más tardes, siéntase libre de crear marcadores.
Simplemente coloque un marcador numerado con un atajo y vuelva a saltar al mismo en cualquier momento con otro atajo. Puede crear hasta 10 marcadores numerados y una cantidad ilimitada de marcadores no numerados. La lista completa de posiciones marcadas se muestra en una única ventana emergente.
Cada vez que coloca un signo de intercalación en un símbolo en el área de visualización de código, dotPeek le ofrece una gran cantidad de opciones de navegación contextual que están disponibles a través del menú desplegable Navegar a.
Por ejemplo, Go to Declaration lo lleva desde un uso de un símbolo a su declaración. Si el símbolo se declara en otra agrupación, la agrupación se carga automáticamente.
Go to Implementation ayuda a navegar hasta implementaciones finales de tipos y miembros de tipos, salteando los pasos de herencia intermedia en la cadena hereditaria, tales como clases abstractas.
Otras opciones útiles de navegación contextual incluyen Go to Base Symbols y Go to Extension Methods.
Si desea navegar hacia arriba y hacia abajo de una jerarquía de herencias para un tipo o miembro de tipo específico, considere usar Go to Base Symbols y Go to Derived Symbols.
Estos son muy útiles para ir directamente a un heredero o símbolo base.
Si busca un resumen visual de cierta cadena de herencia, use Jerarquía de tipos.
dotPeek le mostrará todos los tipos que se heredan del tipo seleccionado, así como los tipos que hereda él mismo, en vista de árbol, en una ventana de herramientas separada.
dotPeek ofrece herramientas para entender rápidamente la estructura de cualquier agrupación dada, comprender las relaciones entre agrupaciones y organizar agrupaciones en listas discretas, lo que ayuda a enfocarse únicamente en las agrupaciones de interés para su tarea actual.
Puede trabajar con distintas listas de agrupaciones según su contexto. Puede guardar y volver a abrir listas de agrupaciones, y limpiar la lista actual si ya no la necesita. Las listas de agrupaciones no se limitan a archivos .dll y .exe: también pueden contener paquetes NuGet, archivos y carpetas.
Cuando esté trabajando con una lista de agrupaciones, el Explorador de agrupaciones le mostrará qué tipo de referencias, recursos y código tiene una agrupación en particular, desde nombres de espacios a miembros de tipos.
Para cada tipo, resalta los nodos que representan sus herederos tipos bases, además de la propia lista de miembros. También soporta las búsquedas rápidas y el filtrado de nodos usando lowerCamelHumps.
dotPeek también le ayuda a explorar los metadatos de la agrupación y examinar todos los elementos (tablas, blobs, cadenas, etc.) de su interior. En el nodo Metadatos, puede explorar valores de elementos blob, encabezados de archivos PE, usos de elementos de tabla de metadatos.
Al igual que en cualquier otro lugar del árbol de la agrupación, puede hacer doble clic en los elementos de metadatos para decompilar y mostrar el código correspondiente.
Si desea conocer las dependencias entre agrupaciones, puede seleccionar varias agrupaciones en el Explorador de agrupaciones y pedirle a dotPeek que muestre un diagrama de dependencias de agrupaciones.
Esto le permitirá visualizar cualquier relación existente entre las agrupaciones seleccionadas en base a sus referencias.
Gratis, no requiere clave de licencia