Recursos dotPeek

Descompile assemblies .NET para C# ou IL

O dotPeek pode descompilar quaisquer assemblies .NET em código C# equivalente e, opcionalmente, mostrar o código IL subjacente.

dotPeek UI overview

Bibliotecas, executáveis e mais

O dotPeek pode trabalhar com uma variedade de formatos, como bibliotecas (.dll), executáveis (.exe) e arquivos de metadados (.winmd).

O dotPeek também pode descompilar arquivos .baml, permitindo reconstruir as definições de interface do usuário XAML.

Além dos assemblies e executáveis tradicionais, você pode ter arquivos abertos do dotPeek (.zip, .vsix ou .nupkg) e pastas. Você também pode encontrar e carregar pacotes NuGet (e suas dependências) de qualquer fonte de pacotes online ou carregar pacotes listados em um arquivo packages.config no seu projeto do Visual Studio.

Visualize o código fonte, se disponível

Visualize o código fonte, se disponível

O código descompilado é melhor que nada, mas às vezes você pode associar um assembly ao seu código-fonte. Então, por que não tirar proveito disso? O dotPeek pode identificar o código fonte local com base em arquivos PDB, ou buscar o código fonte nos servidores de origem, como Microsoft Reference Source Center ou SymbolSource.org. Além disso, o dotPeek pode gerar arquivos PDB.

Use o menu suspenso do modo de navegação na barra de menus para escolher se você deseja que o dotPeek descompile os assemblies ou tente encontrar o código-fonte, se possível.

Show compiler-generated code

Mostrar ou ocultar o código gerado pelo compilador

Você pode optar por mostrar determinadas transformações do compilador, tornando a estrutura de código que o dotPeek exibe muito semelhante à que o compilador o transforma. Isso ajuda a ver como o compilador lida com lambdas, fechamentos e propriedades automáticas, entre outras coisas.

Janela Process Explorer no dotPeek

Explore processos em execução

A janela Process Explorer mostra a lista de todos os processos em execução no momento e permite explorar seus módulos e descompilar aqueles que são assemblies .NET. Você pode optar por mostrar ou ocultar processos e módulos nativos ou ativar a exibição da hierarquia de processos.

Filtre a lista para localizar um módulo ou processo que você está procurando e, em seguida, adicione seus assemblies ao Assembly Explorer para investigação adicional.

Visualizador de código IL no dotPeek

Visualize código IL em uma exibição separada

Sempre que você desejar se aprofundar mais do que o código-fonte, poderá navegar para o código IL a partir de qualquer ponto no C# descompilado.

A maneira mais fácil de fazer isso é mostrar o código IL em uma janela de ferramentas separada, sincronizada com o visualizador de código principal.

O dotPeek pode exibir o código IL tanto para o código descompilado quanto para o código-fonte reproduzido dos arquivos de símbolos.

Código IL mostrado como comentários no código C#

Exibir código IL como comentários para C# descompilado

Como alternativa, você pode optar por mostrar o código IL como comentários ao código C # descompilado, que mescla efetivamente seu visualizador de texto padrão e a janela IL Viewer normalmente separada, tudo em uma única exibição.

Tema de cores escuras no dotPeek

Use seu tema de cores preferido

O dotPeek suporta o mesmo conjunto de temas de cores que o Visual Studio.

Por exemplo, você pode selecionar o tema Azul ou Escuro ou optar por sincronizar sua preferência de esquema de cores com as configurações do Visual Studio.

Navegue pelo código descompilado de maneiras diferentes

Como o dotPeek é baseado na poderosa arquitetura de insight de código do ReSharper, ele permite navegar por montagens descompiladas de maneira contextual ou insensível ao contexto, obter um resumo rápido do conteúdo de cada arquivo descompilado, definir indicadores e explorar cadeias de herança.

Find Results lists all found usages of a symbol

Encontre usos de qualquer símbolo

Com o dotPeek, você tem várias opções para pesquisar onde os símbolos de código são referenciados.

Invoque Find Usages para encontrar todos os usos de um símbolo (como método ou propriedade) em todos os assemblies carregados. Os usos serão exibidos na janela de ferramentas Find Results, na qual você pode agrupá-los, navegar entre eles e abri-los na área de exibição de código.

Também existe oFind Usages Advanced, uma versão mais detalhada de Find Usages que ajuda a ajustar os critérios de pesquisa, limitando o escopo da pesquisa e outros detalhes.

Realçar usos no arquivo

Realçar usos no visualizador de código

O dotPeek realça automaticamente todos os usos visíveis do símbolo no sinal de intercalação, muito semelhante à forma como fazem as versões recentes do Visual Studio. Isso ajuda a melhorar a legibilidade do código descompilado, especialmente quando você está lidando com identificadores ofuscados.

Além disso, se você quiser passar por todos os usos no arquivo, estejam ou não visíveis no momento, use Highlight Usages in File. Isso realçará todos os usos de um determinado símbolo no arquivo atual, com duas cores distintas indicando usos de gravação e leitura.

File Structure window

Explorar documento atual

Use Go to File Member para obter uma rápida visão geral e navegação dos membros em um documento que representa um tipo descompilado. Insira partes dos nomes dos membros e navegue diretamente até eles.

Como alternativa, se você quiser uma exibição estática de membros no documento atual, abra e encaixe a janela de ferramentas File Structure. Você também pode filtrar essa visualização: selecione a janela de ferramentas e comece a inserir caracteres para se concentrar apenas nos membros de tipo nos quais está interessado.

Go to Everything to jump to specific types, files, members etc.

Salte até qualquer código

Ao indexar todos os assemblies na sua lista de assemblies, bem como todas as suas referências, o dotPeek fornece dois recursos para saltar rapidamente até um código específico:

  • Go to Symbol ajuda a navegar até uma declaração de símbolo específica, que pode ser um tipo, método, campo ou propriedade. Use a sintaxe lowerCamelHumps para localizar os tipos — por exemplo, insira xmard para localizar e abrir XamlMarkupDeclaredElement.
  • Go to Everything permite procurar um assembly, namespace, tipo, membro ou um arquivo aberto recentemente.
Bookmarks in dotPeek

Definir favoritos

Se houver linhas de código descompilado que você julgue ser importantes e deseja voltar mais tarde, sinta-se à vontade para definir marcadores.

Basta soltar um marcador numerado com um atalho e voltar a qualquer momento com outro atalho. É possível criar até 10 marcadores numerados e uma quantidade ilimitada de marcadores não numerados. A lista completa de locais marcados é exibida em uma única janela pop-up.

Context-sensitive navigation options

Navegue contextualmente

Sempre que você coloca um sinal de intercalação em um símbolo na área de visualização do código, o dotPeek oferece diversas opções de navegação contextual, todas disponíveis no menu suspenso Navigate To.

Por exemplo, Go to Declaration leva você do uso de qualquer símbolo à sua declaração. Se o símbolo for declarado em outro assembly, o assembly será carregado automaticamente.

Go to Implementation ajuda a navegar até implementações finais de tipos e membros de tipos, ignorando as etapas intermediárias de herança na cadeia de heranças, como classes abstratas.

Outras opções de navegação contextual úteis incluem Go to Base Symbols e Go to Extension Methods.

Go to derived types

Navegue por hierarquias de classes

Se você está interessado em navegar para cima/baixo em uma hierarquia de herança de um tipo ou membro de tipo específico, considere usar Go to Base Symbols e Go to Derived Symbols.

Eles são extremamente úteis quando você deseja acessar um herdeiro ou um símbolo base imediatamente.

Type Hierarchy view

Explore cadeias de heranças

Se você deseja obter um resumo visual de uma certa cadeia de herança, use Type Hierarchy.

O dotPeek mostrará todos os tipos herdados do tipo selecionado, bem como os tipos que ele herda de si próprio — como uma visualização em árvore, em uma janela de ferramentas separada.

Faça sentido dos assemblies

O dotPeek fornece ferramentas para compreender rapidamente a estrutura de qualquer assembly, entender os relacionamentos entre assemblies e organizar montagens em listas discretas, o que ajuda a focar apenas nos assemblies em que você está interessado na sua tarefa atual.

dotPeek helps you browse folders, archives, and NuGet packages

Gerenciar listas de assemblies

Você pode trabalhar com diferentes listas de assemblies, dependendo do seu contexto. Você pode salvar e reabrir listas de assemblies e limpar a lista atual se não precisar mais dela. As listas de assemblies não estão limitadas a arquivos .dll e .exe: elas também podem conter arquivos, pastas e pacotes NuGet.

dotPeek Assembly Explorer

Explore o conteúdo de assemblies

Quando você está trabalhando com uma lista de montagem, o Assembly Explorer mostra que tipo de referências, recursos e código um assembly específico possui, desde namespaces nome até membros de tipo.

Para cada tipo, ele realça os nós que representam seus tipos base e herdeiros — além da lista real de membros. A pesquisa rápida e a filtragem de nós usando lowerCamelHumps também são compatíveis.

Exploring assembly metadata with dotPeek

Explore metadados de assemblies

O dotPeek também ajuda você a explorar metadados de assemblies e vasculhar todos os itens (tabelas, blobs, strings, etc.) dentro deles. No nó Metadata, é possível explorar valores de itens de blob, cabeçalhos de arquivos PE e usos de itens de tabela de metadados.

Assim como em outras partes da árvore de assemblies, você pode clicar duas vezes nos itens de metadados para descompilar e exibir o código correspondente.

Diagrama de dependências de assembly

Visualize dependências entre assemblies

Se quiser saber como os assemblies dependem uns dos outros, você pode selecionar vários assemblies no Assembly Explorer e instruir o dotPeek a exibir um diagrama de dependências de assemblies.

Isso visualizará quaisquer relacionamentos que existam entre os assemblies selecionados em virtude de suas referências.

Baixar dotPeek

Gratuito, sem chave de licença necessária