O que há de novo no dotPeek

Esta página dá detalhes sobre as últimas atualizações e alterações no dotPeek.

Uma nova janela de ferramentas dedicada ao diff de assemblies

Suporte mais amplo ao C# 13 e atualizações de legibilidade 2025.1

A versão 2025.1 traz várias melhorias no descompilador, ampliando o suporte aos últimos recursos do C# e melhorando a legibilidade do código. Veja as novidades:

  • Suporte a membros required.
  • Suporte ao novo tipo System.Threading.Lock, introduzido no C# 13.
  • Suporte a campos ref e a modificadores de parâmetros scoped.
  • Suporte à antirrestrição genérica allows ref struct.
  • Instruções using baseadas em padrões para tipos ref struct.
  • Suporte à interpolação de strings.
  • Agora, certas constantes inteiras no código descompilado incluem representações hexadecimais, para melhor legibilidade.
  • Suporte a namespaces com escopo de arquivo.
Uma nova janela de ferramentas dedicada ao diff de assemblies

Código em linguagem intermediária para o manifesto de assembly 2024.3

Agora a janela de ferramentas IL Viewer fornece o código em linguagem intermediária para o manifesto de assembly, incluindo:

  • Dados do assembly e do módulo, como o nome, atributos personalizados, etc.
  • Assemblies e módulos referenciados.
  • Tipos encaminhados.
  • Uma lista de arquivos e recursos.

Esse código em linguagem intermediária é mostrado quando o cursor estiver em um atributo de assembly ou módulo no editor de textos, ou em algum lugar de um arquivo <AssemblyName>.cs, no caso de assemblies externos.

Suporte a construtores primários 2024.3

Ao trabalhar com classes que declaram um construtor primário, agora o dotPeek mostra corretamente o construtor e seus parâmetros, dando a você uma visão completa de como são instanciados os objetos, diretamente a partir do código descompilado.

Melhorias gerais 2024.2

  • Parâmetros lambda: Introduzimos o suporte à descompilação de lambdas com parâmetros opcionais e arrays de parâmetros, melhorando a legibilidade e a precisão do código descompilado.
  • Atributos em lambdas: Agora a ferramenta oferece um melhor tratamento dos atributos de expressões lambda, para garantir que todos os metadados relevantes sejam precisamente refletidos na saída descompilada.
  • Assemblies protegidas: Introduzimos a capacidade de especificar se você deseja descompilar assemblies protegidas, permitindo uma exploração mais abrangente do código.

Tratamento de fontes externas 2024.2

  • PDB com SrcSrv e SourceLink: Agora o descompilador tem suporte à navegação até o código-fonte a partir de arquivos PDB contendo tanto SrcSrv quanto SourceLink.
  • Diretivas de pré-processador: Agora o descompilador reconhece corretamente diretivas de pré-processador (como NET6_0_OR_GREATER) do framework-alvo ou do Portable PDB da assembly associada, garantindo uma representação precisa do código.
  • Ação Open in Browser: Agora você pode navegar até o código-fonte no repositório, no caso de tipos, ou até um repositório, no caso de pacotes do NuGet ou de assemblies.

Detecção da configuração de build 2024.2

Agora a janela de ferramentas Assembly Explorer detecta e apresenta a configuração de build das assemblies, fornecendo insights mais claros do contexto de compilação da assembly.

Uma nova janela de ferramentas dedicada ao diff de assemblies

Nova janela de ferramentas dedicada Assembly Diff 2024.1

A atualização 2024.1 introduz a nova janela de ferramentas Assembly Diff no dotPeek e Ela traz consigo algumas mudanças:

  • A função de comparação de assemblies, pacotes do NuGet, pastas e arquivos .zip foi movida do Assembly Explorer para a janela de ferramentas Assembly Diff.
  • O seletor Diff mode e os botões Compare e Diff Options foram deslocados para a barra Actions da janela de ferramentas Assembly Diff.
Suporte ao formato de empacotamento WebCIL

Suporte ao formato de empacotamento WebCIL 2024.1

Agora o dotPeek tem suporte ao formato de empacotamento WebCIL para WebAssemblies. Esse suporte abrange:

  • Descompilação para WebCIL.
  • A capacidade de visualizar arquivos .wasm no Assembly Explorer.
  • Subárvores de metadados para nós de WASM no Assembly Explorer, incluindo cabeçalhos de WASM e WebCIL.
Mais recursos da linguagem C#

Melhorias no diff de Assembly 2023.3

O dotPeek 2023.3 pode comparar pacotes do NuGet, pastas e arquivos .zip.

Agora o recurso de comparação de assemblies tem mais opções de comparação. Você pode escolher entre diversos modos de diff (Show all, Show only differences, Show only signature differences, Show only public API differences). Além disso, você pode especificar se deseja que o diff ignore diferenças de ordem membro/atributo e diferenças nas anotações em tipos de referências anuláveis.

Mais recursos da linguagem C#

Assembly Explorer atualiza 2023.3

  • Ao explorar pacotes do NuGet no Assembly Explorer, agora você poderá ver todos os arquivos e pastas contidos nesses pacotes do NuGet.
  • Agora os nós de recursos Win32, incluindo seu tamanho e tipo (se estes puderem ser determinados), podem ser visualizados na árvore de apresentação de nós e no painel Properties.

Outras atualizações 2023.3

  • Acaba de ser introduzida a capacidade de decodificar recursos de tabelas de strings Win32.
  • Agora o dotPeek mostra o tamanho dos arquivos abertos dentro do painel Properties nos casos de assemblies/não assemblies, arquivos dentro de bundles, arquivos comprimidos, pacotes do NuGet, assemblies comparados e recursos Win32.
  • Agora está disponível a validação de assinaturas authenticode de assemblies.
  • Diretivas #nullable disable explícitas são mostradas em fontes descompiladas.
Mais recursos da linguagem C#

Diferença da Assembly 2023.2

O dotPeek 2023.2 oferece uma maneira de comparar duas assemblies em detalhe. Este recurso é especialmente útil ao inspecionar as diferenças entre duas versões de uma assembly específica e procurar por vulnerabilidades em potencial que possam ter sido introduzidas em uma versão mais recente.

Clique aqui para mais informações.

Janela de ferramentas do IL Viewer 2023.1

A versão 2023.1 do dotPeek contém as seguintes melhorias na janela de ferramentas do IL Viewer:

  • Agora, nomes de variáveis locais serão usados em código C#, tanto de baixo nível quanto de alto nível, e nomes de elementos de tuplas de variáveis serão usados em código C# de alto nível, como no código-fonte original.
  • Os nomes comentados dos elementos de tuplas serão obtidos do PDB/descompilador para declarações de variáveis locais em código de linguagem intermediária (IL).
  • A sincronização foi melhorada para inicializadores de campos e propriedades, declarações dentro de iteradores, métodos async, lambdas, funções locais e suas declarações, aninhadas ou não, em C# de alto nível.