Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
dllspy — Discover input surfaces and security issues in compiled .NET assemblies — without running them. | Kitploit
Tools/GitHubGitHub/n7on/dllspy
Static AnalysisVulnerability AnalysisCode AnalysisWeb SecurityPenetration TestingAuthenticationMisconfigurationAPI Security
GitHubn7on/dllspy

dllspy

Discover input surfaces and security issues in compiled .NET assemblies — without running them.

View Repository
39836 months agoReviewed by Kitploit

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

DllSpy

CI NuGet Version PowerShell Gallery Version License

Scans compiled .NET assemblies to discover input surfaces (HTTP endpoints, SignalR hubs, WCF services, gRPC services, Razor Pages, Blazor components, Azure Functions, OData endpoints), check authorization configuration, and flag security issues — all without running the application.

Available as a CLI tool and a PowerShell module.

DllSpy demo

Installation

CLI

root@kitploit:~
dotnet tool install -g DllSpy

PowerShell

root@kitploit:~
Install-Module -Name DllSpy

Usage

CLI

root@kitploit:~
# List all surfaces
dllspy ./MyApi.dll

# Scan for security vulnerabilities
dllspy ./MyApi.dll -s

# Filter by surface type (HttpEndpoint, SignalRMethod, WcfOperation, GrpcOperation, RazorPage, BlazorComponent, AzureFunction, ODataEndpoint)
dllspy ./MyApi.dll -t HttpEndpoint

# Filter by HTTP method and class name
dllspy ./MyApi.dll -m DELETE -c User*

# Only authenticated / anonymous surfaces
dllspy ./MyApi.dll --auth
dllspy ./MyApi.dll --anon

# Only scan host (runnable) assemblies, skip class libraries
dllspy ./MyApi.dll --host-only

# Scan with minimum severity
dllspy ./MyApi.dll -s --min-severity High

# Output format: table (default), tsv, json
dllspy ./MyApi.dll -o json
dllspy ./MyApi.dll -o tsv

JSON + jq

root@kitploit:~
# List all unprotected routes
dllspy ./MyApi.dll -o json | jq '[.[] | select(.requiresAuthorization == false) | .displayRoute]'

# Count surfaces by type
dllspy ./MyApi.dll -o json | jq 'group_by(.surfaceType) | map({type: .[0].surfaceType, count: length})'

# Security issues as compact table
dllspy ./MyApi.dll -s -o json | jq -r '.[] | [.severity, .surfaceRoute, .title] | @tsv'

PowerShell

root@kitploit:~
# All surfaces
Search-DllSpy -Path .\MyApi.dll

# Filter by surface type
Search-DllSpy -Path .\MyApi.dll -Type HttpEndpoint
Search-DllSpy -Path .\MyApi.dll -Type SignalRMethod
Search-DllSpy -Path .\MyApi.dll -Type WcfOperation
Search-DllSpy -Path .\MyApi.dll -Type GrpcOperation
Search-DllSpy -Path .\MyApi.dll -Type RazorPage
Search-DllSpy -Path .\MyApi.dll -Type BlazorComponent
Search-DllSpy -Path .\MyApi.dll -Type AzureFunction
Search-DllSpy -Path .\MyApi.dll -Type ODataEndpoint

# Filter by HTTP method
Search-DllSpy -Path .\MyApi.dll -HttpMethod DELETE

# Filter by class name (supports wildcards)
Search-DllSpy -Path .\MyApi.dll -Class User*

# Only authenticated / anonymous surfaces
Search-DllSpy -Path .\MyApi.dll -RequiresAuth
Search-DllSpy -Path .\MyApi.dll -AllowAnonymous

# Only scan host (runnable) assemblies, skip class libraries
Search-DllSpy -Path .\bin\*.dll -HostOnly

# Find security issues
Test-DllSpy -Path .\MyApi.dll

# Only high-severity issues
Test-DllSpy -Path .\MyApi.dll -MinimumSeverity High

# Only scan host assemblies for security issues
Test-DllSpy -Path .\bin\*.dll -HostOnly

# Detailed view
Test-DllSpy -Path .\MyApi.dll | Format-List

Supported Frameworks

FrameworkDetection MethodSurface Type
ASP.NET Core / Web APIController base class, [ApiController], naming conventionHttpEndpoint
SignalRHub / Hub<T> inheritanceSignalRMethod
WCF[ServiceContract] interfaces + [OperationContract] methodsWcfOperation
gRPCGenerated base class with BindServiceGrpcOperation
Razor PagesPageModel inheritance, On{Verb}[Handler][Async] methodsRazorPage
BlazorComponentBase inheritance + [Route] attributeBlazorComponent
Azure Functions[FunctionName] / [Function] + [HttpTrigger] parameterAzureFunction
ODataODataController inheritanceODataEndpoint

Security Rules

HTTP Endpoints

SeverityRuleDescription
HighUnauthenticated state-changing endpointDELETE, POST, PUT, or PATCH without [Authorize]
MediumMissing authorization declarationEndpoint has neither [Authorize] nor [AllowAnonymous]
LowAuthorize without role/policy[Authorize] present but no Roles or Policy specified

SignalR Hub Methods

SeverityRuleDescription
HighUnauthenticated hub methodHub method without [Authorize] (directly invocable by clients)
LowAuthorize without role/policy[Authorize] present but no Roles or Policy specified

WCF Operations

SeverityRuleDescription
HighUnauthenticated WCF operationOperation without [PrincipalPermission] or [Authorize]
LowAuthorize without role[PrincipalPermission] present but no Role specified

gRPC Operations

SeverityRuleDescription
HighUnauthenticated gRPC operationService method without [Authorize]
LowAuthorize without role/policy[Authorize] present but no Roles or Policy specified

Razor Page Handlers

SeverityRuleDescription
HighUnauthenticated state-changing handlerPOST, PUT, DELETE, or PATCH handler without [Authorize]
MediumMissing authorization declarationHandler has neither [Authorize] nor [AllowAnonymous]
LowAuthorize without role/policy[Authorize] present but no Roles or Policy specified

Blazor Routable Components

SeverityRuleDescription
HighUnauthenticated routable componentComponent with [Route] but without [Authorize]
LowAuthorize without role/policy[Authorize] present but no Roles or Policy specified

Azure Functions

SeverityRuleDescription
HighUnauthenticated Azure FunctionAuthorizationLevel.Anonymous and no [Authorize] attribute
LowAuthorize without role/policy[Authorize] present but no Roles or Policy specified

OData Endpoints

SeverityRuleDescription
HighUnauthenticated state-changing endpointDELETE, POST, PUT, or PATCH without [Authorize]
MediumMissing authorization declarationEndpoint has neither [Authorize] nor [AllowAnonymous]
LowAuthorize without role/policy[Authorize] present but no Roles or Policy specified

License

See LICENSE.

Download Tool