저는 관리되지 않는 .NET API를 사용하고 있으며 메서드에 대한 CIL 바이트 코드를 얻고 싶습니다. IMetaDataImport 인터페이스는 메서드 구현의 RVA를 제공하지만 실제 메모리 위치는 본적이 없습니다.IMetaDataImport가 RVA를 포인터로 해석 할 수 있습니까?
PE 헤더를 직접 구문 분석하지 않고도 정보를 얻을 수있는 방법이 있습니까? 나는 그렇게하기가 어렵지 않다는 것을 안다. 그러나 IMetaDataImport는 작업을 복제하기 위해 이미 그렇게했다.
PE 헤더를 직접 구문 분석해야 할 경우 IMetaDataImport 인스턴스에서 사용하는 HMODULE을 가져올 수 있습니까? 아니면 파일을 직접 메모리 맵핑하고 OpenScopeFromMemory를 호출하여 IMetaDataImport 인스턴스를 만들 수 있습니까?
필자는 이미 손으로 PE 구문 분석을 구현했지만 IMetaDataImport를 사용하여 완전히 전송할 수는 있지만 구현했습니다. 나는 RVAs를 나 자신으로 해결하는 것을 끝내었다. 메타 데이터 헤더에 상대적인 메소드 RVA에 대해 확신합니까? 일반 PE 이미지 섹션 헤더를 사용하여 문제를 해결하고 있으며 정상적으로 작동합니다. – Trillian
더 정확하게 편집되었습니다. 나는 메모리에 파일이 있고 이미 메타 데이터를 읽었다 고 가정했다. 내가 말했듯이, 나는 그 API를 사용하지 않았다. – abecadel