Community코딩 & 개발github.com

ilspy-decompile

.NET 어셈블리를 역컴파일하여 내부 구현 세부 사항을 이해합니다. .NET API가 내부에서 어떻게 동작하는지 확인하거나, NuGet 패키지 소스, 프레임워크 구현, 컴파일된 바이너리를 분석할 때 사용하세요.

ilspy-decompile란 무엇인가요?

이 스킬은 ILSpy 명령줄 도구를 사용하여 .NET 어셈블리를 역컴파일하는 방법을 제공합니다. 개발자가 컴파일된 .NET 라이브러리, NuGet 패키지, .NET 런타임 코드의 내부 구현을 분석할 수 있도록 돕습니다. 주요 기능으로는 기본 역컴파일, 특정 타겟 타입/메서드 역컴파일, IL 코드 보기, 프로젝트 구조로 내보내기 등이 포함됩니다. 이 스킬은 .NET SDK가 설치된 환경에서 사용 가능하며, ilspycmd 전역 도구 설치를 권장합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Aaronontheweb/dotnet-skills/tree/main/skills/ilspy-decompile

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

ILSpy를 사용한 .NET 어셈블리 역컴파일

이 스킬을 사용하여 컴파일된 어셈블리를 역컴파일함으로써 .NET 코드가 내부적으로 어떻게 동작하는지 이해할 수 있습니다.

필수 조건

  • .NET SDK 설치
  • 다음 중 하나를 통해 ILSpy 명령줄 도구 사용 가능:
    • dnx ilspycmd (SDK 또는 런타임에서 사용 가능한 경우)
    • dotnet tool install --global ilspycmd

두 가지 형태 모두 아래에 표시되어 있습니다. 사용자 환경에서 작동하는 것을 사용하세요.

참고: ILSpyCmd 옵션은 버전에 따라 약간 다를 수 있습니다.
지원되는 플래그는 항상 ilspycmd -h로 확인하세요.

빠른 시작

# 어셈블리를 stdout으로 역컴파일
ilspycmd MyLibrary.dll
# 또는
dnx ilspycmd MyLibrary.dll

# 출력 폴더로 역컴파일
ilspycmd -o output-folder MyLibrary.dll

일반적인 .NET 어셈블리 위치

NuGet 패키지

~/.nuget/packages/<package-name>/<version>/lib/<tfm>/

.NET 런타임 라이브러리

dotnet --list-runtimes

.NET SDK 참조 어셈블리

dotnet --list-sdks

참조 어셈블리에는 구현이 포함되어 있지 않습니다.

프로젝트 빌드 출력

./bin/Debug/net8.0/<AssemblyName>.dll
./bin/Release/net8.0/publish/<AssemblyName>.dll

핵심 워크플로

  1. 이해하려는 대상을 식별합니다.
  2. 어셈블리를 찾습니다.
  3. 타입을 나열합니다.
  4. 대상을 역컴파일합니다.

명령어

기본 역컴파일

ilspycmd MyLibrary.dll
ilspycmd -o ./decompiled MyLibrary.dll
ilspycmd -p -o ./project MyLibrary.dll

특정 대상 역컴파일

ilspycmd -t Namespace.ClassName MyLibrary.dll
ilspycmd -lv CSharp12_0 MyLibrary.dll

IL 코드 보기

ilspycmd -il MyLibrary.dll

최신 .NET 빌드 관련 참고 사항

  • ReadyToRun 이미지는 가독성을 저하시킬 수 있습니다.
  • 트리밍 또는 AOT 빌드는 코드를 생략할 수 있습니다.
  • 트리밍되지 않은 빌드를 선호하세요.

법적 고지

어셈블리 역컴파일은 라이선스 제한의 적용을 받을 수 있습니다.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

akka-hosting-actor-patterns

Patterns for building entity actors with Akka.Hosting - GenericChildPerEntityParent, message extractors, cluster sharding abstraction, akka-reminders, and ITimeProvider. Supports both local testing and clustered production modes.

akka-net-aspire-configuration

Configure Akka.NET with .NET Aspire for local development and production deployments. Covers actor system setup, clustering, persistence, Akka.Management integration, and Aspire orchestration patterns.

akka-net-best-practices

Critical Akka.NET best practices including EventStream vs DistributedPubSub, supervision strategies, error handling, Props vs DependencyResolver, work distribution patterns, and cluster/local mode abstractions for testability.

akka-net-management

Akka.Management for cluster bootstrapping, service discovery (Kubernetes, Azure, Config), health checks, and dynamic cluster formation without static seed nodes.

akka-net-testing-patterns

Write unit and integration tests for Akka.NET actors using modern Akka.Hosting.TestKit patterns. Covers dependency injection, TestProbes, persistence testing, and actor interaction verification. Includes guidance on when to use traditional TestKit.

api-design

Design stable, compatible public APIs using extend-only design principles. Manage API compatibility, wire compatibility, and versioning for NuGet packages and distributed systems.

aspire-configuration

Configure Aspire AppHost to emit explicit app config via environment variables; keep app code free of Aspire clients and service discovery.

aspire-integration-testing

Write integration tests using .NET Aspire

aspire-service-defaults

Create a shared ServiceDefaults project for Aspire applications. Centralizes OpenTelemetry, health checks, resilience, and service discovery configuration across all services.

crap-analysis

Analyze code coverage and CRAP (Change Risk Anti-Patterns) scores to identify high-risk code. Use OpenCover format with ReportGenerator for Risk Hotspots showing cyclomatic complexity and untested code paths.

csharp-concurrency-patterns

Choosing the right concurrency abstraction in .NET - from async/await for I/O to Channels for producer/consumer to Akka.NET for stateful entity management. Avoid locks and manual synchronization unless absolutely necessary.

database-performance

Database access patterns for performance. Separate read/write models, avoid N+1 queries, use AsNoTracking, apply row limits, and never do application-side joins. Works with EF Core and Dapper.

dependency-injection-patterns

Organize DI registrations using IServiceCollection extension methods. Group related services into composable Add* methods for clean Program.cs and reusable configuration in tests.

dotnet-devcert-trust

Diagnose and fix .NET HTTPS dev certificate trust issues on Linux. Covers the full certificate lifecycle from generation to system CA bundle inclusion, with distro-specific guidance for Ubuntu, Fedora, Arch, and WSL2.

dotnet-local-tools

Managing local .NET tools with dotnet-tools.json for consistent tooling across development environments and CI/CD pipelines.

dotnet-project-structure

Modern .NET project structure including .slnx solution format, Directory.Build.props, central package management, SourceLink, version management with RELEASE_NOTES.md, and SDK pinning with global.json.

dotnet-slopwatch

Use Slopwatch to detect LLM reward hacking in .NET code changes. Run after every code modification to catch disabled tests, suppressed warnings, empty catch blocks, and other shortcuts that mask real problems.

efcore-patterns

Entity Framework Core best practices including NoTracking by default, query splitting for navigation collections, migration management, dedicated migration services, and common pitfalls to avoid.

mailpit-integration

Test email sending locally using Mailpit with .NET Aspire. Captures all outgoing emails without sending them. View rendered HTML, inspect headers, and verify delivery in integration tests.

marketplace-publishing

Workflow for publishing skills and agents to the dotnet-skills Claude Code marketplace. Covers adding new content, updating plugin.json, validation, and release tagging.

관련 스킬