.net 실행 파일을 구문 분석하고 외부 메소드 호출 목록을 생성하는 비교적 작은 프로그램을 작성해야합니다. 예를 들어 System.Console.WriteLine
이 파일 내에서 호출되면 도구는 System.Console.WriteLine
이라는 어딘가에 인쇄해야합니다. 나는 (제한된 두뇌와 시간) 필요가 없으며 (필요한 모든 것은 호출 목록이다) 실제 분해를 구현할 수 없다. grep friendly perl friendly 호출 된 함수의 이름과 호출이 발생한 오프셋을 비교적 짧은 솔루션으로 작성합니다.부분적으로 .net 실행 파일을 분해합니다.
상황이 이미 시도 :
다운로드 스펙을 MSDN에서. 이제 정적 호출이 바이트 코드로
0x28
으로 변환된다는 것을 알고 있습니다. :) 메소드 디스크립터가 뒤 따르지만 메소드 디스크립터가 의미하는 바를 이해하기 위해서는 전체 스펙을 읽는 것이 필요할 것이다.리플 렉터에 간단한 exe를 열면. 리플렉터는 원래 응용 프로그램의 코드를 정확하게 재현했지만 호출에 대한 바이트 코드를 볼 수 없습니다.
제한된 시간과 지식으로 원하는 제한된 기능을 구현할 수 있습니까?
그렇다면 구현하려면 무엇을 알고 있습니까? "인형 용 CIL 어셈블리"가이드가 있습니까?
반사경에서 메서드에 대해 "분석"을 수행하고로드 된 다른 어셈블리에서 사용되는 (호출되는) 위치를 확인할 수 있습니다. 다른 방향으로 가면 나는 잘 모르겠다. –
고마워, 요원 .9191, 나는 그것을 놓쳤다. – Muxecoid
Analyze는 실제 사용 된 바이트 코드를 보여주지 않습니다. 그것은 모든 사용 된 호출과 함께 종속성 목록을 보여 주지만 종속성 목록은 exe 파일의 시작이나 실제 호출을 담당하는 바이트 코드 단편과 관련된 호출 위치에 대해서는 아무 것도 말하지 않습니다. – Muxecoid