Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - Стековый кадр - Соглашения для разных языков программирования22 января 2011Оглавление: 1. Стековый кадр 2. Соглашения для разных языков программирования Различные компиляторы языков высокого уровня по-разному подходят к организации стекового кадра в зависимости от особенностей аппаратной платформы и стандартов конкретного языка. Основные отличия касаются порядка передачи аргументов в стек и их снятии со стека при возврате. Недостатки стекового кадраСтековый кадр — удобная технология выделения временной памяти для передачи произвольного числа аргументов или внутреннего использования. Однако она имеет ряд недостатков. ПроизводительностьПередача данных через память без необходимости замедляет выполнение программы. Для уменьшения обращений к локальным переменным программа оптимизируется при компиляции для использования регистров вместо переменных в памяти или для хранения их промежуточных значений. Некоторые языки используют соглашения вызова, поддерживающие передачу целочисленных аргументов через регистры. БезопасностьСтековый кадр перемежает данные приложения с критическими данными — указателями, значениями регистров и адресами возврата. Это, в сочетании с архитектурными особенностями некоторых процессоров, делает злонамеренное перекрытие критических данных в результате переполнения буфера очень легко достижимым. Такое «неудачное», с точки зрения переполнения буфера, направление роста машинного стека имеют аппаратные платформы: X86. Атака по переполнению буфера в стеке обычно реализуется следующим образом:
Просмотров: 2347
|