Поделиться через


Вычисление необходимых значений

Необходимо вычислить два критичных участка данных с помощью отложенной вспомогательной программы. Существуют две встроенные функции в 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;
    }

См. также

Ссылки

Понятие вспомогательной функции