Ejemplo n.º 1
0
/**
Function to get an executable's Offset location.
1. Traverse through all the image entries available in the iImgVsExeStatus container.
2. Get the executable Offset.

@internalComponent
@released

@param aExeName - Executable's name.

@return - returns 0 upon failure to find the Executable.
        - otherwise returns the Offset.
*/
const unsigned int SidChecker::GetExecutableOffset(const String& aExeName)
{
    Reporter* reporter = Reporter::Instance(iCmdLine->ReportFlag());
    ImgVsExeStatus& aImgVsExeStatus = reporter->GetContainerReference();

    ImgVsExeStatus::iterator imgBegin = aImgVsExeStatus.begin();
    ImgVsExeStatus::iterator imgEnd = aImgVsExeStatus.end();

    ExeVsMetaData::iterator exeBegin;
    ExeVsMetaData::iterator exeEnd;

    while(imgBegin != imgEnd)
    {
        ExeVsMetaData& exeVsMetaData = imgBegin->second;
        exeBegin = exeVsMetaData.begin();
        exeEnd = exeVsMetaData.end();

        while(exeBegin != exeEnd)
        {
            if(aExeName == (exeBegin->second).iExeName)
            {
                return (exeBegin->second).iIdData->iFileOffset;
            }
            ++exeBegin;
        }
        ++imgBegin;
    }
    return 0;
}