Я слышал этот термин "vtable fixup", используемый. Что это значит? У меня не было успеха, спрашивая Google. Я уже знаю, что такое vtable, поэтому его не нужно определять.
Для меня Google показал, что исправления vtable являются особой функцией формата исполняемых файлов PE (Windows). Они обеспечивают эффективный способ реализации vtables (для C ++ и других языков), в соответствии с спецификацией ECMA :
Некоторые языки, которые предпочитают не следовать общему времени выполнения системы типов модель, может иметь виртуальные функции которые должны быть представлены в v-таблицы. Эти V-таблицы выложены компилятором, а не средой выполнения. Нахождение правильного слота V-таблицы и вызывая косвенно через значение проводится в этом слоте также делается компилятор. Поле VtableFixups в заголовок времени выполнения содержит расположение и размер массива Исправления Vtable (см. Пункт 14.5.1). V-таблицы должны быть выброшены в раздел чтения-записи PE-файла. Каждая запись в этом массиве описывает непрерывный массив слотов V-таблицы указанный размер. Каждый слот начинается инициализирован в токен метаданных значение для метода, который им нужен вызов. Во время загрузки изображения время выполнения Загрузчик превратит каждую запись в указатель на машинный код для процессора и может быть вызван напрямую.
Некоторые языки, которые предпочитают не следовать общему времени выполнения системы типов модель, может иметь виртуальные функции которые должны быть представлены в v-таблицы. Эти V-таблицы выложены компилятором, а не средой выполнения. Нахождение правильного слота V-таблицы и вызывая косвенно через значение проводится в этом слоте также делается компилятор. Поле VtableFixups в заголовок времени выполнения содержит расположение и размер массива Исправления Vtable (см. Пункт 14.5.1). V-таблицы должны быть выброшены в раздел чтения-записи PE-файла.
Каждая запись в этом массиве описывает непрерывный массив слотов V-таблицы указанный размер. Каждый слот начинается инициализирован в токен метаданных значение для метода, который им нужен вызов. Во время загрузки изображения время выполнения Загрузчик превратит каждую запись в указатель на машинный код для процессора и может быть вызван напрямую.
Простой ответ: взломать возможность сосуществования кода, созданного различными компиляторами / языками. Это позволяет среде выполнения находить местоположения виртуальных функций, не зная деталей реализации.