dnSpyEx
dnSpyEx는 dnSpy 프로젝트의 비공식 후속 버전으로, .NET 어셈블리 편집기이자 디버거입니다. 소스 코드가 없어도 어셈블리를 편집하고 디버깅할 수 있습니다. 주요 기능:
- .NET 및 Unity 어셈블리 디버깅
- .NET 및 Unity 어셈블리 편집
- 라이트/다크 테마
더 많은 기능은 아래를 참조하세요.


바이너리
최신 안정 릴리스: https://github.com/dnSpyEx/dnSpy/releases
최신 기능을 사용해 보고 싶다면 최신 "베타" 빌드를 사용할 수 있습니다:

빌드
git clone --recursive https://github.com/dnSpyEx/dnSpy.git
cd dnSpy
# or dotnet build
./build.ps1 -NoMsbuild
Unity 게임을 디버깅하려면 이 저장소도 필요합니다: https://github.com/dnSpyEx/dnSpy-Unity-mono
디버거
- 소스 코드 없이 .NET Framework, .NET 및 Unity 게임 어셈블리 디버깅
- 중단점 설정 및 모든 어셈블리 단계별 실행
- 로컬, 조사식, 자동 창
- 변수 창은 변수(예: 복호화된 바이트 배열)를 디스크에 저장하거나 16진수 편집기(메모리 창)에서 볼 수 있도록 지원
- 개체 ID
- 여러 프로세스를 동시에 디버깅 가능
- 모듈 로드 시 중단
- 추적점 및 조건부 중단점
- 중단점 및 추적점 내보내기/가져오기
- 시스템 라이브러리에 대한 선택적 내 코드만(JMC) 단계 필터
- 호출 스택, 스레드, 모듈, 프로세스 창
- 예외 발생 시 중단(1차 기회)
- 변수 창은 C# / Visual Basic 식 평가 지원
- 동적 모듈 디버깅 가능(CLR 제한으로 동적 메서드는 제외)
- 출력 창은 다양한 디버깅 이벤트를 기록하며, 기본적으로 타임스탬프를 표시합니다 :)
- 런타임에 자체적으로 복호화되는 어셈블리도 디버깅할 수 있으며, dnSpy는 메모리 내 이미지를 사용합니다. 또한 dnSpy가 디스크 파일 대신 항상 메모리 내 이미지를 사용하도록 강제할 수 있습니다.
- 일반적인 디버거 탐지 기술 우회
- 공용 API를 통해 확장 프로그램을 작성하거나 C# 대화형 창을 사용하여 디버거를 제어할 수 있습니다.
어셈블리 편집기
- 모든 메타데이터 편집 가능
- 소스 코드 없이 IntelliSense를 사용하여 C# 또는 Visual Basic으로 메서드와 클래스 편집
- C# 또는 Visual Basic으로 새 메서드, 클래스, 멤버 추가
- 저수준 IL 메서드 본문 편집을 위한 IL 편집기
- 저수준 메타데이터 테이블 편집 가능. 내부적으로 16진수 편집기를 사용합니다.
16진수 편집기
- 디컴파일된 코드에서 주소를 클릭하면 16진수 편집기에서 해당 IL 코드로 이동
- 위의 반대 기능: 16진수 편집기의 IL 본문에서 F12를 누르면 디컴파일된 코드 또는 다른 고수준 비트 표현으로 이동합니다. 패치가 어떤 문을 수정했는지 확인하는 데 유용합니다.
- .NET 메타데이터 구조 및 PE 구조 강조 표시
- 도구 설명은 선택한 .NET 메타데이터 / PE 필드에 대한 추가 정보 표시
- 위치, 파일, RVA로 이동
- .NET 메타데이터 토큰, 메서드 본문, #Blob / #Strings / #US 힙 오프셋 또는 #GUID 힙 인덱스로 이동
- 참조 따라가기(Ctrl+F12)
기타
- BAML 디컴파일러 및 디스어셈블러
- 블루, 라이트, 다크 테마(및 다크 고대비 테마)
- 북마크
- C# 대화형 창을 사용하여 dnSpy 스크립팅 가능
- 클래스, 메서드, 문자열 등 어셈블리 검색
- 클래스 및 메서드 사용 분석, 호출자 찾기 등
- 여러 탭 및 탭 그룹
- 참조가 강조 표시되며, Tab / Shift+Tab으로 다음 참조로 이동
- 진입점 및 모듈 이니셜라이저로 이동 명령
- 메타데이터 토큰 또는 메타데이터 행으로 이동 명령
- 코드 도구 설명(C# 및 Visual Basic)
- 프로젝트로 내보내기
dnSpy에서 사용하는 기타 오픈 소스 라이브러리 목록
dnSpy 번역
dnSpy를 모국어로 번역하는 데 도움을 주고 싶다면 여기를 클릭하세요.
위키
빌드 지침 및 기타 문서는 위키를 참조하세요.
라이선스
dnSpy는 GPLv3에 따라 라이선스가 부여됩니다.