Por que converter DLL para C?
Uma DLL (formato Windows PE) contém código binário compilado - nomes de variáveis originais, comentários e estrutura são descartados pelo compilador. Desenvolvedores descompilam DLLs quando o código-fonte é perdido ou indisponível, ao auditar bibliotecas de terceiros por segurança ou ao portar funcionalidades para outra plataforma.
Como converter DLL para C
dotPeek FREE
Para DLLs .NET: arraste o .dll para o dotPeek, navegue na árvore de namespaces, clique com o botão direito em um namespace e escolha «Export to Project» para gravar os arquivos-fonte .cs em uma pasta.
ILSpy OPEN-SOURCE
Para DLLs .NET: abra via File > Open, selecione os tipos na árvore de assembly e use File > Save Code para exportar os arquivos C# descompilados.
Ghidra OPEN-SOURCE
Para DLLs nativas: importe o arquivo, execute a análise automática, navegue pelos exports na «Symbol Tree» e visualize o pseudocódigo semelhante a C no painel «Decompiler»; exporte via File > Export Program > C/C++.
Sobre estes formatos
Uma DLL (Dynamic Link Library) é um arquivo de biblioteca do Windows que contém código compilado que os programas carregam enquanto são executados, portanto, não é algo que se abre com um…
Abrir detalhes de .DLL →Um arquivo .c é um código-fonte C - texto simples que um programador escreve e que um compilador transforma em um programa executável. Abra-o para leitura em qualquer editor de texto…
Abrir detalhes de .C →Qualidade e o que observar
- DLLs .NET contêm bytecode CIL e descompilam quase perfeitamente para C#; DLLs nativas compiladas a partir de C ou C++ produzem apenas pseudocódigo aproximado com nomes gerados automaticamente como
param_1elocal_8. - dotPeek e ILSpy produzem C# (ou VB.NET), não C puro; se você precisar especificamente de C, deverá traduzir manualmente a saída.
- Nomes de variáveis originais, comentários e estrutura de código estão ausentes tanto na saída .NET descompilada quanto na saída nativa desmontada - o compilador os descarta.