내가 성공적으로 실행하여 내 프로세스에로드 된 모듈의 기본 주소를 검색 할 수 있습니다 받기 해당 모듈의 .text
섹션?윈도우 :</p> <pre><code>MODULEINFO mInfo; GetModuleInformation(GetCurrentProcess(),GetModuleHandle(L"moduleName"),&mInfo,sizeof(mInfo)); LPVOID baseAddress = mInfo.lpBaseOfDll; </code></pre> <p>을하지만 어떻게 하나가 지금의 시작과 끝 주소를 검색 할 수 있습니다 시작하고 텍스트 섹션의 끝
1
A
답변
2
응용 프로그램 및 모듈 (실행 가능한 코드라고도 함)은 Microsoft에서 지정한 "Portable Executable"형식을 기반으로합니다. 원하는 정보를 검색하려면 메모리의 논리 테이블을 거쳐 PE 형식을 기반으로 원하는 구성원에 액세스해야합니다. 섹션은 데이터와 코드를 호스팅합니다. 섹션 (예 :. 텍스트)의 시작과 끝을 검색하려면 섹션 헤더를 검사하고 실행 가능한지 여부를 검색해야합니다. Matt Pietrek은 PE에 대한 "the"소개로 간주되어야하는 표준 문서를 작성했습니다.
+0
결과를 제어하려면 항상 WinDbg, OllyDbg 등을 사용할 수 있습니다.이 도구는 섹션, 유형, 시작 주소, 종료 주소 등을 표시합니다. – mox
mInfo.SizeOfImage가 사용자의 요구를 충족시키지 않는 이유를 설명하지 않았습니다. VirtualQuery()를 고려하여 baseAddress를 전달하십시오. –
사실 저는 .text 섹션의 메모리 공간 (전체 코드 공간이 아닌)을보고 싶습니다. .text 섹션의 시작 주소를 얻기 위해 VirtualQuery를 어떻게 사용할 수 있습니까? – Paranaix