DllSpy

Analyse les assemblys .NET compilés pour découvrir les surfaces d'entrée (points de terminaison HTTP, hubs SignalR, services WCF, services gRPC, pages Razor, composants Blazor, fonctions Azure, points de terminaison OData), vérifier la configuration d'autorisation et signaler des problèmes de sécurité — le tout sans exécuter l'application.
Disponible en tant qu'outil CLI et module PowerShell.

Installation
CLI
dotnet tool install -g DllSpy
PowerShell
Install-Module -Name DllSpy
Utilisation
CLI
# Lister toutes les surfaces
dllspy ./MyApi.dll
# Analyser les vulnérabilités de sécurité
dllspy ./MyApi.dll -s
# Filtrer par type de surface (HttpEndpoint, SignalRMethod, WcfOperation, GrpcOperation, RazorPage, BlazorComponent, AzureFunction, ODataEndpoint)
dllspy ./MyApi.dll -t HttpEndpoint
# Filtrer par méthode HTTP et nom de classe
dllspy ./MyApi.dll -m DELETE -c User*
# Uniquement les surfaces authentifiées / anonymes
dllspy ./MyApi.dll --auth
dllspy ./MyApi.dll --anon
# Analyser uniquement les assemblys hôtes (exécutables), ignorer les bibliothèques de classes
dllspy ./MyApi.dll --host-only
# Analyser avec une sévérité minimale
dllspy ./MyApi.dll -s --min-severity High
# Format de sortie : table (par défaut), tsv, json
dllspy ./MyApi.dll -o json
dllspy ./MyApi.dll -o tsv
JSON + jq
# Lister toutes les routes non protégées
dllspy ./MyApi.dll -o json | jq '[.[] | select(.requiresAuthorization == false) | .displayRoute]'
# Compter les surfaces par type
dllspy ./MyApi.dll -o json | jq 'group_by(.surfaceType) | map({type: .[0].surfaceType, count: length})'
# Problèmes de sécurité sous forme de tableau compact
dllspy ./MyApi.dll -s -o json | jq -r '.[] | [.severity, .surfaceRoute, .title] | @tsv'
PowerShell
# Toutes les surfaces
Search-DllSpy -Path .\MyApi.dll
# Filtrer par type de surface
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
# Filtrer par méthode HTTP
Search-DllSpy -Path .\MyApi.dll -HttpMethod DELETE
# Filtrer par nom de classe (prend en charge les jokers)
Search-DllSpy -Path .\MyApi.dll -Class User*
# Uniquement les surfaces authentifiées / anonymes
Search-DllSpy -Path .\MyApi.dll -RequiresAuth
Search-DllSpy -Path .\MyApi.dll -AllowAnonymous
# Analyser uniquement les assemblys hôtes (exécutables), ignorer les bibliothèques de classes
Search-DllSpy -Path .\bin\*.dll -HostOnly
# Trouver les problèmes de sécurité
Test-DllSpy -Path .\MyApi.dll
# Uniquement les problèmes de haute sévérité
Test-DllSpy -Path .\MyApi.dll -MinimumSeverity High
# Analyser uniquement les assemblys hôtes pour les problèmes de sécurité
Test-DllSpy -Path .\bin\*.dll -HostOnly
# Vue détaillée
Test-DllSpy -Path .\MyApi.dll | Format-List
Frameworks pris en charge
Règles de sécurité
Points de terminaison HTTP
Méthodes de hub SignalR
Opérations WCF
Opérations gRPC
Gestionnaires de pages Razor
Composants Blazor routables
Fonctions Azure
Points de terminaison OData
Licence
Voir LICENSE.