计算所需值

延迟 Helper 例程需要计算两条重要信息。 为实现该目标,delayhlp.cpp 中有两个内联函数用于计算此信息。

  • 第一个函数计算三个不同表(导入地址表 (IAT)、绑定导入地址表 (BIAT) 和未绑定导入地址表 (UIAT))中的当前导入的索引。

  • 第二个对有效 IAT 中的导入的数目进行计数。

// utility function for calculating the index of the current import
// for all the tables (INT, BIAT, UIAT, and IAT).
__inline unsigned
IndexFromPImgThunkData(PCImgThunkData pitdCur, PCImgThunkData pitdBase) {
    return pitdCur - pitdBase;
    }

// utility function for calculating the count of imports given the base
// of the IAT. NB: this only works on a valid IAT!
__inline unsigned
CountOfImports(PCImgThunkData pitdBase) {
    unsigned        cRet = 0;
    PCImgThunkData  pitd = pitdBase;
    while (pitd->u1.Function) {
        pitd++;
        cRet++;
        }
    return cRet;
    }

请参见

参考

了解 Helper 函数