Предположим, у меня есть небольшая программа, как этот:Могу ли я перехватить инициализацию глобального указателя в C?
int i = 0;
int *pi = &i;
int **ppi = π
int main(int argc, char *argv[]) {
return i + *pi + **ppi;
}
Есть ли способ, чтобы перехватить инициализацию pi
и ppi
, когда они установлены во время загрузки программы/настройки? Я хотел бы подключиться к их инициализации, чтобы я мог переписать значения указателя и вставить несколько своих собственных битов, если это возможно, прежде чем запускается main(). Все это должно быть прозрачным и автоматическим.
Я изучил интерфейс аудита LD (link), но предоставил только обратные вызовы для функций.
В некоторых средах глобалы выделяются как часть байтов программы и уже инициализируются в изображении нагрузки. –
Что вы действительно пытаетесь сделать? (Это может помочь дать ответ.) – TypeIA
@dvnrrs: Отредактировал вопрос: я бы хотел поймать, когда они инициализированы, поэтому я могу вставить несколько пользовательских битов в значения указателя. – Jens