Files
Work/image/SCTNHDRS.CPP
2024-08-07 09:16:27 -04:00

24 lines
757 B
C++

#include <image/sctnhdrs.hpp>
WORD ImageSectionHeaders::enclosingSectionHeader(DWORD virtualAddress,ImageSectionHeader &someImageSectionHeader,DWORD &deltaOffset)
{
DWORD sectionCount(((Array<ImageSectionHeader>&)*this).size());
deltaOffset=0;
for(short sectionIndex=0;sectionIndex<sectionCount;sectionIndex++)
{
ImageSectionHeader &imageSectionHeader=((Array<ImageSectionHeader>&)*this)[sectionIndex];
if(virtualAddress>=imageSectionHeader.virtualAddress()&&
virtualAddress<imageSectionHeader.virtualAddress()+imageSectionHeader.virtualSize())
{
someImageSectionHeader=imageSectionHeader;
if(!isMemImage())deltaOffset=imageSectionHeader.virtualAddress()-imageSectionHeader.pointerRawData();
return TRUE;
}
}
return FALSE;
}