Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Get-PDInvokeImports — Módulo PowerShell para detecção automática de P/Invoke, Dynamic P/Invoke e D/Invoke em assemblies .NET. Revela chamadas de API não gerenciadas, MDTokens e locais de exportações para marcadores do DnSpy para análise de malware. | Kitploit
Ferramentas/GitHubGitHub/dump-guy/get-pdinvokeimports
Análise EstáticaEngenharia ReversaAnálise de MalwareAnálise de Binários
GitHubdump-guy/get-pdinvokeimports

Get-PDInvokeImports

Módulo PowerShell para detecção automática de P/Invoke, Dynamic P/Invoke e D/Invoke em assemblies .NET. Revela chamadas de API não gerenciadas, MDTokens e locais de exportações para marcadores do DnSpy para análise de malware.

Ver Repositório

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
546há 4 anosRevisado pelo Kitploit

Get-PDInvokeImports

Descrição:

O Get-PDInvokeImports é uma ferramenta (módulo PowerShell) capaz de realizar a detecção automática do uso de P/Invoke, Dynamic P/Invoke e D/Invoke em assemblies. Mostra todos os locais de onde são referenciados e exporta tudo para DnSpy_Bookmarks.xml

Este módulo PS pode ser útil e auxiliar durante a engenharia reversa de assemblies .NET para revelar rapidamente chamadas a funções não gerenciadas da API usadas no assembly. Às vezes, assemblies de malware estão cheios de código lixo onde a funcionalidade principal é implementada por chamadas diretas à WIN API ou NTAPI.
O Get-PDInvokeImports permite que você tenha uma visão geral rápida de quais P/Invoke, Dynamic P/Invoke e D/Invoke são usados no assembly – Ele mostrará quais funções são usadas + MDTokens, onde são declaradas e todos os locais de onde são usadas no código.
Permite exportar todos os locais onde são detectados P/Invoke, Dynamic P/Invoke e D/Invoke referenciados no código para DnSpy Bookmarks.xml

Exemplo: Imagine um assembly de 1 MB cheio de código lixo + ofuscação CF onde a funcionalidade principal é alcançada por chamadas não gerenciadas à WinAPI\NTAPI.

Este módulo PS é escrito em PowerShell e é totalmente compatível com Windows PowerShell (.NET Framework) e PowerShell Core (baseado em .NET, .NET Core). Ele usa dnlib para analisar o assembly e .NET reflection para carregar dnlib. O Dnlib está disponível para .NET framework e .NET standard – simplesmente significa que é possível usar este módulo PS dependente de dnlib no Windows e também no Linux.

O que são P/Invoke, Dynamic P/Invoke e D/Invoke?

Bem, de forma muito resumida, são implementações possíveis de como chamar código não gerenciado a partir do código gerenciado (simplificado – pode ser usado para chamar diretamente WinAPI/NTAPI a partir do .NET)
Algumas são mais fáceis de implementar, outras são melhores para evitar detecção por AV e hooking.

Mais informações:

P/Invoke - [PInvoke]
D/Invoke - [DInvoke]
Dynamic P/Invoke - [Dynamic PInvoke]

Instalação:

[Releases] contém dnlib já compilado para a plataforma especificada + o script Get-PDInvokeImports.ps1.
Windows – Baixe o [release] (Use no Windows PowerShell ou PowerShell Core)
Linux – Baixe o [release] (Use no PowerShell Core)

Se necessário – compile o dnlib por conta própria (Windows – .NET Framework, Linux – netstandard)

Uso:

Vídeo: [YouTube]

[PARÂMETRO] -PathToAssembly

Parâmetro obrigatório.
Especifica o caminho do assembly a ser analisado.

[PARÂMETRO] -PathToDnlib

Parâmetro opcional.
Caminho do sistema para dnlib.dll.

Se o PowerShell estiver sendo executado no local do dnlib.dll – este parâmetro pode ser ignorado; caso contrário, especifique este parâmetro.

[PARÂMETRO] -ExportDnSpyBookmarks

Parâmetro opcional.
Usado para exportar todos os locais de P/Invoke, Dynamic P/Invoke e D/Invoke detectados referenciados no código para o arquivo XML de Bookmarks do DnSpy (DnSpy_Bookmarks.xml)

Similar ao DnSpy-Analyze-UsedBy (Boa visão geral de onde todos os PInvoke e DInvoke são usados em todo o código)

Assim, é possível importá-lo para o DnSpy através da janela de Bookmarks (DnSpy -> View -> Bookmarks -> Bookmark Window -> Import bookmarks from file -> selecione DnSpy_Bookmarks.xml)

[EXEMPLOS]

root@kitploit:~
PS> Import-Module .\Get-PDInvokeImports.ps1
PS> Get-PDInvokeImports -PathToAssembly 'C:\testfiles\malware.exe'
PS> Get-PDInvokeImports -PathToAssembly .\malware.exe –ExportDnSpyBookmarks
PS> Get-PDInvokeImports -PathToAssembly 'C:\testfiles\malware.exe' -PathToDnlib "C:\dnlib.dll" –ExportDnSpyBookmarks

Exemplos Linux:

Exemplos Windows:

Observações

A detecção deve ser robusta o suficiente para derrotar algumas ofuscações comuns..
Testada com ofuscadores mais comuns como SmartAssembly, ConfuserEx etc.

Detalhes da detecção: P/Invoke é detectado através do atributo PinvokeImpl, que deve estar sempre presente.
D/Invoke é detectado através do atributo "UnmanagedFunctionPointerAttribute" e "CallingConvention" (Isso pode ser derrotado em certas circunstâncias – mas deixo para a imaginação da RedTeam (de qualquer forma, vou derrotá-los)
A detecção de Dynamic P/Invoke é baseada na localização do métodoX que faz referência a DefinePInvokeMethod() + todos os métodosY que referenciam methodX.

Dependências:

[dnlib] (leitor/gravador de metadados .NET que também pode ler assemblies ofuscados)
[DnSpyEx - opcional]

Baixar ferramenta