문제

JVM Bytecode (ASM, CGLIB, JAD 등) 조작, 생성, 소환하는 Java 도구를 잘 알고 있습니다. CLR 바이트 코드에 대한 유사한 도구는 무엇입니까? 사람들은 CLR에 대해 바이트 코드 조작을합니까?

도움이 되었습니까?

해결책

바이트 코드는 이진 형식입니다. .NET 어셈블리는 실행 지침을 저장하는 방법에 따라 매우 다릅니다.

바이트 코드와 같은 구조로 컴파일하는 대신 .NET 언어는 중간 언어로 컴파일됩니다 (실제로는 IL이라고합니다).

이것은 객체 지향 버전의 어셈블러처럼 보이는 인간 읽기 가능한 언어입니다.

따라서 개별 어셈블리에 대한 IL을 검사하거나 조작하는 측면에서 반사기 및 ildasm과 같은 도구를 사용하면 모든 어셈블리의 IL을 편리하게 볼 수 있습니다.

조작은 약간 다릅니다. .NET 공간의 일부 AOP 도구를 살펴 보는 것이 좋습니다. 또한 MS가 작품에있는 컴파일러 프로젝트 인 피닉스를 살펴 보는 것이 좋습니다. 정말 멋진 후 컴파일 조작 기능이 있습니다.

.NET AOP 도구에 대해 더 알고 싶다면 다른 질문을 열어야합니다 (다른 웜의 캔).

IL의 내부를 가르쳐 줄 몇 권의 책도 있습니다. 배우는 것은 매우 복잡한 언어가 아닙니다.

다른 팁

반사판은 항상 좋지만 mono.cecil은 전반적으로 요청할 수있는 최고의 도구입니다. 어떤 식 으로든 CIL을 조작하는 것은 매우 중요합니다.

모노. 세실 ASM과 같은 훌륭한 도구입니다. 그것은 모노의 하위 프로젝트이며 완전히 오픈 소스입니다. 그것은 심지어 제공합니다 더 나은 기능 시스템보다 반사.

ildasm 그리고 반사기 생각 나다.

ndepend .NET 어셈블리 정적 분석 (코드 메트릭, 종속성 분석 등)을 수행 할 수 있습니다. ndepend는 종속성 매트릭스, 종속성 그래프 및 Treemap 메트릭을 사용하여 .NET 어셈블리의 구조에 대한 개요를 얻는 데 매우 유용합니다. 시각화.

또한 반사판과 통합됩니다. 예를 들어, 각각 유형/방법을 사용하여 어셈블리의 중요한 유형과 메소드를 감지 할 수 있습니다. 순위 메트릭 (Google 페이지 순위와 유사한 코드 메트릭) 및 C#, vb.net 등으로 분해 된 코드를 가져 오기 위해 NDEPONCE에서 반사기로 직접 점프합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top