programing

.NET EXE를 읽을 수 있는 C# 소스 코드로 압축 해제하려면 어떻게 해야 합니까?

lovejava 2023. 6. 13. 21:53

.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과 같은 몇몇 회사는 무료 대안을 만들었습니다.

DevExtra 코드 리플렉트

제트브레인 도트피크

Denis Bauer의 Reflector 및 File Disassembler 추가 기능입니다.실제로는 어셈블리에서 소스 프로젝트를 생성하며, 리플렉터는 분해된 소스만 표시합니다.

추가됨: 제가 최근에 가장 좋아하는 것은 JetBrains의 dotPeek입니다.

텔레릭 저스트 디컴파일은 무료이며 .NET 어셈블리에서 프로젝트를 만들 수 있는 기능이 있습니다.

아무도 마이크로소프트 어리석음을 언급하지 않은 것이 놀랍습니다.ILSpy나 Reflector만큼 예쁘지는 않지만 Visual Studio와 함께 제공되므로 이미 많은 개발자가 가지고 있습니다.

VS 2013을 실행하려면(다른 버전의 VS 2013도 비슷해야 한다고 가정):

  1. Start > All Programs > Visual Studio 2013 > Visual Studio Tools를 선택합니다.
  2. VS2013용 개발자 명령 프롬프트를 두 번 클릭합니다.
  3. 결과 명령 프롬프트에서 "idasm"을 실행합니다.
  4. 도구에서 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