Como abrir arquivos .dll para ver o que está escrito dentro?

92

Perdi a solução da biblioteca de classes, posso abrir o .dllarquivo criado por class-library.

HaDe
fonte
10
Refletor ......
Mitch Wheat
23
DotPeek .........
gastador
7
Além disso: tente usar o controle de código-fonte ....
Mitch Wheat
1
possível duplicata de DLLs
Daniel Powell

Respostas:

112

você fica melhor com um descompilador como redgates .net reflector ou jetbrains resharper decompiler. existem outros de código aberto também como

http://www.jetbrains.com/decompiler/

http://ilspy.net/

Peter Kellner
fonte
jetbrains.com/decompiler funcionou para mim. 1 para isso. Obrigado pela sugestão!
Vikram de
ilspy ++++++++++++++++++++
Imad
ildpy +1. Um bom.
sonsha
ILSpy. O que você espia?
gonzobrains
30

Siga as etapas abaixo ..

  1. Vá para o menu Iniciar.
  2. Digite Visual Studio Tool.
  3. Vá para a pasta acima.
  4. Clique em "Prompt de comando do desenvolvedor para VS 2013" no caso do VS 2013 ou apenas "Prompt de comando do Visual Studio" no caso do VS 2010.
  5. Depois que o prompt de comando for carregado na tela, ILDASM.EXEpressione ENTER.
  6. ILDASMa janela será aberta. Arraste o .dllarquivo para a janela da sua pasta. Ou clique em. Em File->Newseguida, adicione o .dll arquivo necessário .
  7. Após os passos acima, o Mainfest e o .dllarquivo aparecerão. Clique duas vezes nesses arquivos para ver o que eles contêm.
Abhi
fonte
Segui suas instruções claras usando o VS 2012 e 2015 / Windows 7 Pro. No entanto, ILDASM emitiu a seguinte mensagem para o arquivo .dll que tentou examinar: has no valid CLR header and cannot be disassembled.
CODE-REaD
2
Este processo é usado para desmontar a linguagem intermediária gerada pelo CLR.
mmushtaq
7

Acho que você baixou o .NET Reflector e este plug-in FileGenerator http://filegenreflector.codeplex.com/ , se o fizer,

  1. Abra o Reflector.exe,

  2. Vá para Visualizar e clique em Suplementos,

  3. Na janela Add-Ins, clique em Adicionar ...,

  4. Em seguida, encontre a dll que você baixou

  5. FileGenerator.dll (que veio com o plug-in FileGenerator),

  6. Em seguida, feche a janela Add-Ins.

  7. Vá para Arquivo e clique em Abrir e escolha a dll que deseja descompilar,

  8. Depois de abri-lo, ele aparecerá na visualização em árvore,

  9. Vá para Ferramentas e clique em Gerar Arquivos (Crtl + Shift + G),

  10. selecione o diretório de saída e selecione as configurações apropriadas como desejar, clique em gerar arquivos.

OU

use http://ilspy.net/

retroceder
fonte
especificamente qual deles você aconselha? ILspy ou refletor? prós e contras
T.Todua
3

Você não pode obter o código exato, mas pode obter uma versão descompilada dele.

A ferramenta mais popular (e melhor) é o Reflector , mas também existem outros descompiladores .Net (como o Dis # ).

Você também pode descompilar o IL usando ILDASM , que vem junto com o .Net Framework SDK Tools.

Rohit
fonte
1

Abra o .dllarquivo com o Visual Studio. Ou editor de recursos.

vusan
fonte
2
Quando tentei abrir um arquivo .dll usando o Visual Studio Express 2013 / Windows 7 Pro, ele emitiu a seguinte mensagem:There is no editor available for (file I tried to open). Make sure the application for the file type (.dll) is installed.
CODE-REaD
1

Just Decompile da Telerik é o melhor que já usei. É grátis uma vez que você se inscreve com um e-mail.

insira a descrição do link aqui

Eric
fonte
1

Eu uso o Jetbrains Dot peek Software, você pode tentar isso também

user13570405
fonte
-11

Os arquivos * .dll são arquivos abertos com winzip / 7zip etc. Isso não quer dizer que todos os arquivos .dll são arquivos, você pode salvar qualquer coisa com a extensão .dll, porém a maioria dos arquivos .dll do Windows são gerados para serem arquivos exemplos disso são janelas > twain_32.dll que é um arquivo compactado, entretanto twain.dll não é, se você olhar para twain.dll, verá um MZŽ como os três primeiros caracteres do bloco de notas que denota um arquivo / programa C compilado ou parte de um programa. Considerando que MZ parece ser um arquivo.

Além disso, a maioria dos arquivos .exe são arquivos contendo principalmente uma imagem de ícone etc. para o arquivo e os pacotes do instalador do Windows também contêm todas as informações de que o programa precisa para executar imagens, filmes, etc. e também diretórios, incluindo informações de instalação e arquivo de texto simples.

Eu tenho um jogo aqui game.exe e ele contém arquivos de classe java uma imagem um ponteiro direcionando o .exe para executar um arquivo .bat. Obviamente, seu arquivo .bat executará uma chamada javac do arquivo e executará o jogo, também há alguns arquivos .dll contendo arquivos de classe java.

[autorun]
ICON=AUTORUN\MINCRAFTLOGO.ICO

ícone padrão redirecionar aqui .ico é um arquivo de imagem dentro de um arquivo .dll dentro de um arquivo .exe. Portanto, a imagem vista no arquivo .exe é o logotipo do minecraft. Ele está em um arquivo chamado autorun.inf. Segundo exemplo

[discstarter]
    startpage=Autostart\Disk1.html
    uselanguagestartpage=1
    windowcaption=Solid Edge
    licensee=Siemens PLM Software
    productguid=05B227DF-DB00-4934-B3C8-40B7D8FAA54A
    singleinstance=1
    hidesplashscreen=1
    noscrollbars=0
    showstatusbar=1
    splashscreentime=0
    windowwidth=750
    windowheight=775
    buttondir=Autostart
    toolbarcolor=16777215
    toolbar=goback,goforward,gohome,print,exit
    [autorun]
    open=autostart.exe
    icon=Autostart\ENGINE.ICO

Este é o arquivo autorun.inf de borda sólida contido em solidedge.exe Autostart \ é o diretório Autostart.dll. open = autostart.exe especifica o arquivo autostart.exe a ser executado a partir do arquivo solidedge.exe original. Aqui está um programa de amostra usando os arquivos .dll (biblioteca de link dinâmico) http://www.flipcode.com/archives/Creating_And_Using_DLLs.shtml .

Também mostra como eles são criados. Como você pode ver, o conteúdo do arquivo dll é chamado por um arquivo exe, conforme expliquei anteriormente, também há um tutorial aqui http://msdn.microsoft.com/en-us/library/ms235636.aspx e como eu disse antes 7zip ou winzip abrirá uma biblioteca de vínculo dinâmico como um arquivo, desde que você tenha o arquivo .dll. Se o conteúdo da biblioteca de vínculo dinâmico foi compilado, obviamente você precisa de um programa que possa ler o arquivo.

No entanto, como os arquivos .dll são, por definição, apenas arquivos de biblioteca de arquivamento, a própria dll deve ser legível e não um arquivo C, C # compilado etc. etc. criado e qualquer informação que você armazena no arquivo DLL é criptografada. Geralmente, essa criptografia é tratada pelo próprio visual studio e geralmente não é editada manualmente. Quando você lê o conteúdo de um arquivo .dll como um .exe, o conteúdo é automaticamente descriptografado. Agora, quando falamos sobre compilar um programa, estamos mudando o conteúdo para bytecode que a máquina interpreta facilmente.

Este tamanho de arquivo seria menor do que o arquivo original com o mesmo conteúdo. No entanto, o tamanho do arquivo é maior, sugerindo que o arquivo foi realmente criptografado. Provavelmente para impedir que as pessoas leiam seu código. Como resultado, a leitura do conteúdo .dll é denominada descriptografia e não descompilação. A descompilação converteria os arquivos txt já compilados em código de byte ilegível. O uso de arquivos .dll padrão não é, por definição, código aberto porque envolve a ofuscação deliberada do código de bytes.

david
fonte
8
Não tenho certeza se isso contaria como apostasia ou heresia nos círculos de computação. Como poderia ser melhorado? Se estivesse no papel, eu poderia usar um fósforo para acabar com seu sofrimento.
brewmanz