Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Get-PDInvokeImports — .NET 어셈블리에서 P/Invoke, Dynamic P/Invoke 및 D/Invoke를 자동으로 탐지하기 위한 PowerShell 모듈입니다. 관리되지 않는 API 호출, MDTokens 및 내보내기 위치를 DnSpy 북마크에 표시하여 맬웨어 분석을 지원합니다. | Kitploit
도구/GitHubGitHub/dump-guy/get-pdinvokeimports
Static AnalysisReverse EngineeringMalware AnalysisBinary Analysis
GitHubdump-guy/get-pdinvokeimports

Get-PDInvokeImports

.NET 어셈블리에서 P/Invoke, Dynamic P/Invoke 및 D/Invoke를 자동으로 탐지하기 위한 PowerShell 모듈입니다. 관리되지 않는 API 호출, MDTokens 및 내보내기 위치를 DnSpy 북마크에 표시하여 맬웨어 분석을 지원합니다.

저장소 보기
5464년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Get-PDInvokeImports

설명:

Get-PDInvokeImports는 어셈블리에서 P/Invoke, Dynamic P/Invoke 및 D/Invoke 사용을 자동으로 감지할 수 있는 도구(PowerShell 모듈)입니다. 참조된 모든 위치를 표시하고 DnSpy_Bookmarks.xml로 내보냅니다.

이 PS 모듈은 .NET 어셈블리 리버싱 중에 어셈블리에서 사용되는 관리되지 않는 API 함수 호출을 빠르게 식별하는 데 유용하고 도움이 될 수 있습니다. 때때로 악성 코드 어셈블리는 정크 코드로 가득 차 있으며 주요 기능은 직접적인 WIN API 또는 NTAPI 호출로 구현됩니다.
Get-PDInvokeImports를 사용하면 어셈블리에서 사용되는 P/Invoke, Dynamic P/Invoke 및 D/Invoke를 빠르게 개괄할 수 있습니다. 어떤 함수가 사용되는지 + MDTokens, 선언된 위치, 코드에서 사용된 모든 위치를 보여줍니다.
코드에서 참조된 P/Invoke, Dynamic P/Invoke 및 D/Invoke가 감지된 모든 위치를 DnSpy Bookmarks.xml로 내보낼 수 있습니다.

예: 정크 코드 + CF 난독화로 가득 차 있고 주요 기능이 관리되지 않는 WinAPI\NTAPI 호출을 통해 이루어지는 1MB 어셈블리를 상상해 보세요.

이 PS 모듈은 PowerShell로 작성되었으며 Windows PowerShell(.NET Framework) 및 PowerShell Core(.NET, .NET Core 기반)와 완전히 호환됩니다. dnlib을 사용하여 어셈블리를 구문 분석하고 .NET 리플렉션을 사용하여 dnlib을 로드합니다. Dnlib은 .NET framework 및 .NET standard에서 사용할 수 있습니다. 즉, Windows 및 Linux OS에서 dnlib에 종속된 이 PS 모듈을 사용할 수 있습니다.

P/Invoke, Dynamic P/Invoke 및 D/Invoke란 무엇인가?

간단히 말하면, 이들은 관리 코드에서 관리되지 않는 코드를 호출할 수 있는 구현 방법입니다(단순화하면 .NET에서 직접 WinAPI/NTAPI를 호출하는 데 사용할 수 있음).
일부는 구현하기 더 쉽고, 일부는 AV 탐지 및 후킹을 더 잘 회피합니다.

추가 정보:

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

설치:

[Releases]에는 지정된 플랫폼용으로 이미 컴파일된 dnlib와 Get-PDInvokeImports.ps1 스크립트가 포함되어 있습니다.
Windows – [릴리스] 다운로드 (Windows PowerShell 또는 PowerShell Core에서 사용)
Linux – [릴리스] 다운로드 (PowerShell Core에서 사용)

필요한 경우 - 직접 dnlib 컴파일 (Windows – .NET Framework, Linux-netstandard)

사용법:

비디오: [YouTube]

[매개변수] -PathToAssembly

필수 매개변수입니다.
스캔할 어셈블리 경로를 지정합니다.

[매개변수] -PathToDnlib

선택적 매개변수입니다.
dnlib.dll의 시스템 경로입니다.

PowerShell이 dnlib.dll의 위치에서 실행 중인 경우 이 매개변수를 무시할 수 있으며, 그렇지 않으면 이 매개변수를 지정하십시오.

[매개변수] -ExportDnSpyBookmarks

선택적 매개변수입니다.
코드에서 참조된 모든 감지된 P/Invoke, Dynamic P/Invoke 및 D/Invoke 위치를 DnSpy Bookmarks XML 파일(DnSpy_Bookmarks.xml)로 내보내는 데 사용됩니다.

DnSpy-Analyze-UsedBy와 유사합니다(전체 코드에서 모든 PInvoke 및 DInvoke가 사용되는 위치의 좋은 개요).

따라서 북마크 창을 통해 DnSpy로 가져올 수 있습니다(DnSpy -> 보기 -> 북마크 -> 북마크 창 -> 파일에서 북마크 가져오기 -> DnSpy_Bookmarks.xml 선택).

[예제]

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

Linux 예제:

Windows 예제:

참고

탐지는 일반적인 난독화를 무력화할 수 있을 만큼 강력해야 합니다..
SmartAssembly, ConfuserEx 등과 같은 가장 일반적인 난독화 도구로 테스트되었습니다.

탐지 내부: P/Invoke는 항상 존재해야 하는 PinvokeImpl 특성을 통해 감지됩니다.
D/Invoke는 "UnmanagedFunctionPointerAttribute" 특성과 "CallingConvention"을 통해 감지됩니다 (이것은 특정 상황에서 무력화될 수 있지만 – RedTeam의 상상에 맡깁니다 (어쨌든 이길 것입니다)).
Dynamic P/Invoke 탐지는 DefinePInvokeMethod()를 참조하는 methodX와 methodX를 참조하는 모든 methodY를 찾는 것을 기반으로 합니다.

Dependecies:

[dnlib] (.NET 메타데이터 리더/라이터, 난독화된 어셈블리도 읽을 수 있음)
[DnSpyEx - 선택 사항]

도구 다운로드