Como visualizar as funções da DLL?

Respostas:

73

Para código nativo, provavelmente é melhor usar o Dependency Walker . Também é possível usar o utilitário de linha de comando dumpbin que acompanha o Visual Studio.

detunizado
fonte
1
Com edições mais recentes do VS, tente o DumpBin como uma ferramenta externa .
23818 Laurie Stearn
Existe um artigo da Wikipedia sobre Dependency Walker. Aparentemente, o programa ficou desatualizado e não funciona com alguns recursos mais recentes do Windows, mas há uma substituição disponível: github.com/lucasg/Dependencies
user1324109
50

Use o DLL Export Viewer gratuito , é muito fácil de usar.

Ken D
fonte
8
@sumit você pode ser mais específico? essas ferramentas funcionam para mim ao longo dos anos.
Ken D
6
Na verdade, a ferramenta funciona bem, pura e simplesmente, exatamente o que eu precisava.
informatik01
5
É uma ótima ferramenta para gerar uma lista de métodos / funções, mas não mostra os parâmetros dos métodos (nem seus tipos).
bvdb
1
É ótimo ter algo pequeno e compacto, e não um produto inchado, como os produtos oficiais da MS.
ワ イ き ん ぐ
38

Você pode tentar o Pesquisador de objetos no Visual Studio.

Selecione Editar conjunto de componentes personalizados . A partir daí, você pode escolher entre uma variedade de bibliotecas .NET, COM ou projeto ou apenas importar dlls externas via Browse.

cslewy
fonte
16
O Visual Studio diz "O componente selecionado não pode ser navegado" ao usar Procurar e selecionar DLL :( - msdn.microsoft.com/query/…
Xdg
5
O navegador de objetos foi movido para View. E sim, ele não funciona (por que ele, da Microsoft)
phil294
1
Mais um fornecedor do que um problema de MS. Provavelmente, não há typelib na dll. Veja: stackoverflow.com/a/13903040/1614903
Holger Böhnke
@ HolgerBöhnke não typelib em userdll32 quer
Kimmax
2
@Kimmax Sim, mas o user32.dll é uma DLL nativa do Windows e não um servidor COM. Somente servidores COM (por exemplo, DLLs COM, controles ActiveX, * .ocx ...) possivelmente possuem fontes tipográficas, se eles foram compilados, em primeiro lugar. Para DLLs nativas (= objetos não COM), algumas das outras ferramentas mencionadas aqui (dumpbin et. Al.) Podem funcionar. Ou seja, se a DLL exportar suas funções por nome e não apenas por ordinal.
Holger Böhnke 04/04
27

Use a dumpbinlinha de comando .

  • dumpbin /IMPORTS <path-to-file> deve fornecer a função importada para essa DLL.
  • dumpbin /EXPORTS <path-to-file> deve fornecer as funções que exporta.
jmcarter9t
fonte
9

Use o dotPeek da JetBrains.

https://www.jetbrains.com/decompiler/

dotPeek é uma ferramenta gratuita baseada no ReSharper. Ele pode descompilar de forma confiável qualquer assembly .NET em código C # ou IL.

Shayan
fonte
Portanto, isso é específico para DLLs usando a estrutura .NET?
Joel Bodenmann 22/03
8

Para DLLs do .NET, você pode usar o ildasm

altumano
fonte
Como o ildasm é um produto da Microsoft e está instalado no PC por padrão, se você tiver o Visual Studio instalado. Eu acredito que seja a melhor opção. Ele também possui uma interface do usuário para que você não precise usar a linha de comando. Obrigado
Mehrdad Babaki /
Pode ser encontrado: C: \ Arquivos de Programas (x86) \ Microsoft SDKs \ Windows \ <VERSION> \ bin
f4d0
6

Sem nos dizer de que idioma é este dll / assembly, podemos apenas adivinhar.

Então, que tal o .NET Reflector

Adriaan Stander
fonte
2
Então este deve ser o seu cara.
Adriaan Stander
1
O refletor .net costumava ser gratuito, mas agora é um produto comercial. Para o .net dll "JustDecompile" é uma alternativa gratuita.
bvdb
O decompiler apenas informa quais funções existem. podemos ver a implementação deles também?
precisa saber é o seguinte
2

Se uma DLL estiver gravada em uma das linguagens .NET e se você desejar exibir apenas quais funções, há uma referência a essa DLL no projeto.

Em seguida, clique duas vezes na DLL na pasta de referências e você verá as funções que ela possui na janela OBJECT EXPLORER

Se você deseja visualizar o código-fonte desse arquivo DLL, pode usar um aplicativo de descompilador, como o refletor .NET. Espero que isso ajude você.

Karamafrooz
fonte