PE獲取最後一個節



PIMAGE_SECTION_HEADER GetLastSectionInfo(void * pBase)
{
             IMAGE_DOS_HEADER * dos_head;
             PIMAGE_SECTION_HEADER section_header;
             IMAGE_NT_HEADERS32 * pPeHeader;
             PIMAGE_SECTION_HEADER pLastSectionInfo;
            dos_head = ( IMAGE_DOS_HEADER *)pBase ;

            pPeHeader = ( IMAGE_NT_HEADERS32 *)((char *)dos_head + dos_head->e_lfanew);//得到PE文件頭的位置
            section_header = ( PIMAGE_SECTION_HEADER)((char *)pPeHeader + sizeof( DWORD)
                                                           + sizeof(IMAGE_FILE_HEADER )
                                                                                                                           + pPeHeader->FileHeader.SizeOfOptionalHeader);
             //m_pLastSectionInfo指向節表最後一節的信息
            pLastSectionInfo = &section_header[pPeHeader->FileHeader.NumberOfSections - 1];          
             return pLastSectionInfo;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章