.NET EXE를 읽을 수 있는 C# 소스 코드로 압축 해제하려면 어떻게 해야 합니까?
저는 몇 년 전에 고객을 위해 C# 애플리케이션을 작성했지만, 더 이상 소스 코드를 가지고 있지 않습니다.내가 가진 것은 클라이언트의 PC에 배포한 EXE뿐입니다.EXE에서 C# 소스 코드를 생성할 수 있는 방법이 있습니까?
Reflector 및 해당 추가 기능인 FileDisassembler.
리플렉터에서 소스 코드를 볼 수 있습니다.FileDisassembler를 사용하여 VS 솔루션으로 변환할 수 있습니다.
레드 게이트가 더 이상의 무료 버전이 없을 것이라고 말했을 때.넷 리플렉터, 저는 ILSpy와 텔릭의 저스트 디컴파일을 사용하기 시작했습니다.저는 (아직 베타 버전에 있는) 저스트 디컴파일보다 ILSpy가 더 정확하게 디컴파일을 할 수 있다는 것을 알게 되었습니다.레드 게이트는 그들의 결정을 바꿨고 여전히 의 무료 버전을 가지고 있습니다.넷 리플렉터, 하지만 지금은 ILSpy가 좋아요.
ILSpy 웹 사이트(https://github.com/icsharpcode/ILSpy/) :
ILSpy는 오픈 소스 .NET 어셈블리 브라우저 및 디컴파일러입니다.
ILSpy 기능
- 어셈블리 탐색
- IL 분해
- C#로 압축 해제
- 람다와 '수익률' 지원
- XML 문서를 표시합니다.
- 자원의 절약
- 유형/방법/속성 검색(하위 문자열)
- 하이퍼링크 기반 유형/방법/속성 탐색
- 기본/파생 유형 탐색
- 내비게이션 이력
- BAML에서 XAML로 역컴파일러
- 어셈블리를 C# 프로젝트로 저장
- 필드/메소드 사용법 찾기
- 플러그인(MEF)을 통해 확장 가능
업데이트:
2012년 4월 15일, ILSpy 2.0이 출시되었습니다.버전 1.0과 비교한 새로운 기능:
- 어셈블리 목록
- 식 트리의 디컴파일 지원
- nullable에서 해제된 연산자 지원
- Visual Basic으로 압축 해제
- 공백으로 구분된 여러 문자열 검색(ILSpy.exe에서 "Assembly Manager"를 검색하면 AssemblyListManager를 찾을 수 있음)
- 로컬 변수를 클릭하면 해당 변수의 다른 모든 항목이 강조 표시됩니다.
- Ctrl+F를 사용하여 디컴파일된 코드 보기 내에서 검색할 수 있습니다.
업데이트:
- ILSpy 2.1은 비동기/대기 압축 해제를 지원
리플렉터는 더 이상 일반적으로 무료가 아니지만 오픈 소스 개발자들에게 무료로 제공됩니다. http://reflectorblog.red-gate.com/2013/07/open-source/
그러나 DevExtra 및 JetBrain과 같은 몇몇 회사는 무료 대안을 만들었습니다.
Denis Bauer의 Reflector 및 File Disassembler 추가 기능입니다.실제로는 어셈블리에서 소스 프로젝트를 생성하며, 리플렉터는 분해된 소스만 표시합니다.
추가됨: 제가 최근에 가장 좋아하는 것은 JetBrains의 dotPeek입니다.
텔레릭 저스트 디컴파일은 무료이며 .NET 어셈블리에서 프로젝트를 만들 수 있는 기능이 있습니다.
아무도 마이크로소프트의 어리석음을 언급하지 않은 것이 놀랍습니다.ILSpy나 Reflector만큼 예쁘지는 않지만 Visual Studio와 함께 제공되므로 이미 많은 개발자가 가지고 있습니다.
VS 2013을 실행하려면(다른 버전의 VS 2013도 비슷해야 한다고 가정):
- Start > All Programs > Visual Studio 2013 > Visual Studio Tools를 선택합니다.
- VS2013용 개발자 명령 프롬프트를 두 번 클릭합니다.
- 결과 명령 프롬프트에서 "idasm"을 실행합니다.
- 도구에서 File > Open을 선택하고 실행 파일 또는 DLL을 엽니다.
이제 DLL 구조를 탐색할 수 있습니다.IL을 보려면 클래스 멤버를 두 번 클릭합니다.File > Dump를 사용하여 IL을 파일로 내보냅니다.
반사경이 필요합니다.
아무도 dnSpy를 언급하지 않은 것이 놀랍습니다. dnSpy는 디버거이자 .NET 어셈블리 편집기입니다.사용 가능한 소스 코드가 없는 경우에도 어셈블리를 편집하고 디버그하는 데 사용할 수 있습니다.
주요 기능:
- .NET 및 Unity 어셈블리 디버그
- .NET 및 Unity 어셈블리 편집
- 명암 테마
오픈 소스이며 닷넷에 가장 널리 사용되는 역 엔지니어링 도구 중 하나입니다.
현재 다양한 .NET / C# 디컴파일러를 사용할 수 있습니다(2022).
- 모두를 위한 ILSpy [무료 OSS C# IL 멀티 플랫폼]
- 간편한 디컴파일을 위한 dotPeek [free C# IL]
- 전문가, 보안 및 해커를 위한 dnSpy [무료 OSS C# VBIL]
- 모든 사용자를 위한 Just Dembile [무료 OSS C# VBIL](CodemerxDecompile로 계속됨
- 향수를 위한 IldAsm [무료 IL]
- .NET 기록용 리플렉터 [상업적으로 지원되지 않는 C#VBIL MC++]
ILSpy를 선호하는 이유는 무료, OSS, 매우 빠르고(다른 것에 비해) Visual Studio에서도 사용되고 디컴파일된 코드가 정확하기 때문입니다.이 블로그 게시물의 정글 오브 .NET 디컴파일러는 이 모든 .NET 디컴파일러를 자세히 설명합니다.
언급URL : https://stackoverflow.com/questions/179741/how-do-i-decompile-a-net-exe-into-readable-c-sharp-source-code
'programing' 카테고리의 다른 글
여러 번의 Vuex 변환 구독 트리거 (0) | 2023.06.13 |
---|---|
오류: c에서 입력 끝에 선언 또는 문이 필요합니다. (0) | 2023.06.13 |
-std=c99를 사용하는 GCC가 구조 시간 사양을 모른다고 불만을 제기합니다. (0) | 2023.06.13 |
0으로 나누기 0을 반환하는 방법 (0) | 2023.06.13 |
Oracle - 두 DateTime 열 간의 차이를 분 단위로 파악하는 데 가장 적합한 SELECT 문은 무엇입니까? (0) | 2023.06.13 |