PE 파일에서 첫 번째 섹션 정보를 가져오려면 어떻게 해야하죠..?
간지포텐
질문 제목 :
PE 파일에서 첫 번째 섹션 정보를 가져오려면 어떻게 해야하죠..?
PE 파일에서 첫 번째 섹션 정보를 가져오는 힌트를 얻고자 합니다.
질문 내용 :
PE 파일에서 PE header가 끝나고 실제 내용들이 나오는 섹션 중 첫 번째 섹션의 정보를 가져와서
그 안의 내용을 출력하거나, 그 안에서 특정 원하는 값을 검색해내는 프로그램을 짜려고 합니다.
PE header의 내용을 분석하는 것은,
CreateFile 함수
CreateFileMapping 함수
MapViewofFile 함수 를 사용해
접근하는 포인터를 받아와서 window.h 에 정의되어있는 PIMAGE_DOS_HEADER 같은 것들로
PIMAGE_DOS_HEADER pIDH=(PIMAGE_DOS_HEADER)lpBasePointer; // DOSPIMAGE_NT_HEADERS pINH=(PIMAGE_NT_HEADERS)((DWORD)pIDH+pIDH-e_lfanew); //NTPIMAGE_FILE_HEADER pIFH=&pINH-FileHeader; //NT - FILEPIMAGE_OPTIONAL_HEADER pIOH=(PIMAGE_OPTIONAL_HEADER)&pINH-OptionalHeader;//NT-OPTIONALPIMAGE_SECTION_HEADER pISH=(PIMAGE_SECTION_HEADER)((PBYTE)pIOH+sizeof(IMAGE_OPTIONAL_HEADER)); //SECTION
이런 식으로 헤더들에는 접근해서 PE 파일에 대한 정보는 얻겠는데..
그 다음에 정작 섹션에 접근해서 첫 번째 섹션 값들을 긁어오려고 할 때 그 부분에 어떻게 접근해야할 지 모르겠습니다..
ImageBase 와 RVA 값을 더해서 섹션 주소를 알아내서.. 그 주소 값을 포인터에 넣어서 접근하려고 해도 안 되고..
ㅜㅜ
어떻게 첫 번째 섹션에 접근해서 그 값을 복사해오거나 출력할 수 있을까요.. ㅜㅜ