Помещается ли что-нибудь в стек после вектора elf aux процесса в формате elf и выполняется с соглашением о вызовах SYSV

Я пишу свою собственную библиотеку libc, чтобы узнать о дизайне стандартной библиотеки POSIX C, основах компоновки, формате файла elf и различных других лишних вещах, и я написал простой crt1, который помещает argc, argv и envp в registers устанавливает библиотеку и надлежащие ссылки на простую программу на языке C.

Однако недавно я узнал о вспомогательном векторе эльфов и считаю, что мой ЭЛТ случайно сбивает вектор.

Из каких источников я прочитал, процесс при запуске должен выглядеть примерно так:

stack pointer - > argc
                  argv[0]
                  ...
                  argv[argc]
                  envp[0]
                  ...
                  envp[n]
                  auxv[0]
                  ...
                  auxv[n]

Когда указатель стека равен auxv[n + 1], достиг ли он нижней части значимых данных, помещенных в стек загрузчиком?

0 ответов

Другие вопросы по тегам