Programming

반사판에 대한 오픈 소스 대안?

procodes 2020. 2. 19. 22:16
반응형

반사판에 대한 오픈 소스 대안?


RedGate의 리플렉터 에 대한 오픈 소스 대안을 아는 사람이 있는지 물어보십시오 . Reflector와 비슷한 도구가 실제로 어떻게 작동하는지 확인하고 싶습니다.

Reflector 의 무료이지만 오픈 소스가 아닌 대안을 알고 있다면 다음 관련 질문에 대답 할 수 있습니다.

요약-2011 년 5 월 11 일 업데이트

제안 된 다양한 오픈 소스 프로젝트 및 도구의 빠른 정리 :

  1. 공통 컴파일러 인프라 (CCI)
  2. 모노 세실
  3. ILSpy
  4. dnSpy ( ILSpy 포크, 프로젝트가 원본보다 활성화 된 것으로 나타남)
  5. 닷넷 IL 편집기 (DILE)
  6. IL.보기
  7. 모노 플 렉터 ( 2011 년 4 월부터 더 이상 활성화되지 않음 )

다음 자료들도 관심이있을 수 있습니다.

  • TypeView.cs
  • .NET 분해 에 대한 Jason Haley의 노트
  • Adrian Bank의 최근 블로그 게시물 에는 아래에 언급되지 않은 몇 가지 옵션을 포함하여 여러 가지 반사판 대안이 요약되어 있습니다.
  • Mark Lichtenberg의 자세한 블로그 게시물은 여러 오픈 소스 대안 (MonoDevelop을 사용하는 DILE, ILSpy 및 Mono Cecil)을 리플렉터와 비교합니다.

내가 아는 두 가지 옵션.

  • CCI
  • 모노 세실

이것들은 C #을 제공하지 않습니다.


2011 년 12 월 13 일 업데이트

다음과 같은 오픈 소스 도구를 사용할 수 있습니다.


다른 대체품은 dotPeek 입니다. JetBrains는 무료 도구로 발표했습니다. Resharper 와 함께 사용하면 더 많은 기능을 사용할 수 있지만 단독으로 사용하더라도 매우 잘 작동합니다.

사용자 경험은 독립형 디스어셈블러보다 MSVS와 유사합니다. Reflector보다 코드를 읽는 것이 더 좋습니다. Ctrl + T 탐색도 더 적합합니다. 트리를 코드 창과 동기화하는 것이 더 좋습니다.

대체로 아직 개발 중이지만 이미 잘 사용할 수 있습니다.


Telerik은 오늘 자체 디 컴파일 툴인 JustDecompile 베타를 발표했다 . 비공개 소스이지만 무료이며 유망한 것으로 보입니다.


ILSpy훌륭하게 작동합니다!

내가 말할 수있는 한, 리플렉터가했던 것과 똑같이 보이는 모든 것을한다.


실제로 Reflector는 디 컴파일러 기능이있는 디스어셈블러로 간주됩니다. 디스어셈블러는 어셈블리 파일에서 바이트를 읽고 어셈블리 언어 (이 경우 ILasm)로 변환하기 때문에 디스어셈블러입니다. IL을 잘 알려진 패턴 (표현식 및 문장)으로 구문 분석하여 제공하는 디 컴파일러 기능은 C #, VB.Net 등과 같은 고급 언어로 번역됩니다. Reflector의 addin api를 사용하면 자체 언어 번역기를 작성할 수 있습니다. 당신이 원하지만 ... IL을 표현 트리로 구문 분석하는 방법의 마술은 밀접한 비밀입니다.

IL 디스어셈블러의 작동 방식을 이해하려면 위에서 언급 한 세 가지 중 하나를 살펴 보는 것이 좋습니다. Dile, CCI 및 Mono는 모두이 자료의 좋은 소스입니다.

또한 Ecma 335 사양 및 Serge Lidin의 책을 얻는 것이 좋습니다.


내가 리플렉터를 사용한 주된 이유는 (그리고 대부분의 사람들이 그것을 사용한 주된 이유는) 디 컴파일러 때문이었습니다. 메소드의 IL을 소스 코드로 다시 변환 할 수 있습니다.

시점 에서 Monoflector 는 볼 프로젝트입니다. 리플렉션을 수행하는 Cecil과 디 컴파일을 수행하는 Cecil.Decompiler를 사용합니다. 그러나 Monoflector는 두 라이브러리 위에 UI를 계층화하므로 API 사용 방법을 매우 잘 이해할 수 있습니다.

Monoflector는 Reflector를 완전히 대체 할 수있는 훌륭한 대안입니다. 사람들이 Reflector를 사용한 것의 99 % 인 타입을 탐색하고 메소드를 디 컴파일 할 수 있습니다. 가장자리가 너무 거칠지 만 그것이 빠르게 변할 것이라고 생각합니다.


Reflector 자체는 .NET 어셈블리이므로 Reflector에서 Reflector.exe를 열어 빌드 방식을 확인할 수 있습니다.


현재 Assembly Analyzer라는 오픈 소스 디스어셈블러 / 디 컴파일러에서 작업하고 있습니다. 메소드의 소스 코드를 생성하고 어셈블리 메타 데이터 및 리소스를 표시하며 종속성을 살펴볼 수 있습니다.

이 프로젝트는 CodePlex => http://asmanalyzer.codeplex.com/ 에서 호스팅됩니다


반사기 도구는 반사를 사용합니다.   -분명히 이것은 정확하지 않습니다.

리플렉터의 기능을 보여주는 코드와 리플렉터의 대안 인 두 가지를 요청했습니다.

다음은 Reflector의 기능을 단순화 한 예제이지만 리플렉션 기술을 보여줍니다. TypeView.cs

오픈 소스 리플렉터 교체에 대한 제안이 없습니다.

참고 URL : https://stackoverflow.com/questions/2425973/open-source-alternatives-to-reflector



반응형