Это основной вопрос, касающийся ASLR
Если у меня есть двоичный файл, для которого не включена ASLR.Однако в используемом им файле libc включена функция ASLR, и тогда адрес system () в файле libc будет каждый раз рандомизироваться?
Или адрес будет одинаковым каждый раз, поскольку сам основной двоичный файл не имеетASLR включен?
В GDB я получаю адрес функции system (), как показано ниже:
(gdb) break main
(gdb) run
(gdb) print &system
Итак, это возвращает адрес system () из libc илиPLT основного бинарного файла?
Кроме того, если у меня есть файл libc из другой системы, то как я могу найти внутри него адрес system ()?По умолчанию, если я запускаю gdb в моем основном двоичном файле, он найдет адрес system () для libc в локальной системе.Должен ли я сказать gdb загрузить файл libc (который я получил из удаленной системы)?