Этот материал GLIBC_2.3
вводится во время компоновки (компилятор ничего не знает о вашей версии Glibc).А .rename
комментарии в списке - это артефакт IDA.(Содержит ли документация IDA что-нибудь о них?)
Знаки @
, которые вы видите, указывают версии символов , @@
, обозначающие версию по умолчанию, для которой внешняя (в Glibc, в данном случае) ссылки на этот символ связаны.
Компоновщик поддерживает версии символов при использовании ELF.Версии символов полезны только при использовании общих библиотек.Динамический компоновщик может использовать версии символов для выбора конкретной версии функции при запуске программы, которая могла быть связана с более ранней версией общей библиотеки.
Таким образом, решение относительно того, какой символссылка в вашей программе будет привязана к моменту загрузки ld.so
.Может быть, это то, что означает .rename
.
С помощью цепочки инструментов GNU решение о привязке может фактически быть отложено до времени выполнения.На моей платформе (x86_64-linux-gnu) memcpy - это IFUNC .Вы можете проверить, так ли это для вас, посмотрев на символы glibc, подобные этому readelf -s /lib/libc.so.6 | grep IFUNC.*memcpy
.Тем не менее, в теории IDA не будет знать конечный пункт назначения без запуска кода, так что если здесь, скорее всего, нет ничего интересного.Вы можете протестировать другие функции libc, которые не являются ifuncs, ради более чистого эксперимента.