Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Zahar Kiselev                        2:5030/382.1   26 Oct 2004  15:14:34
 To : Igor Plekhov
 Subject : Re: неисполняемый стэк в 2.4 ?
 -------------------------------------------------------------------------------- 
 
 
 Oct 26 12:00 04, Igor Plekhov wrote to Zahar Kiselev:
 
  >>  А кто сказал, что буфер в программе обязательно надо объявлять как
  >>  автоматическую переменную? Я бы даже сказал, что более традиционно 
  >> размещать буферы при помощи malloc. 
  IP> те, от переполнения которых якобы защищает неисполняемый стек,
  IP> размещаются в стеке.
 
 Стэк - это такой же сегмент как и все прочие. Если реализовать(вернее -
 задействовать) возможность установки прав на сегменты, а заодно и проверку
 границ сегментов - то защищенность(прежде всего от ошибок в программах)
 повысится.
 
  >>   IP> для этого надо _каждый_ буфер помещать в отдельный сегмент.
  >>  А что в этом плохого?
  >>  Хотя можно и не каждый, а только критичные с точки зрения 
  >> безопасности.
  IP> а как компилятору (или кому там) определить, какой критичный,
  IP> а какой нет ?
 
 Можно добавить директиву #pragma к тем что уже имеются в gcc.
 А можно сделать внешнюю переменую, объявленную в libc и доступную из любого
 места в программе - влияющую на поведение функции malloc - при одном значении
 malloc будет создавать массив в отдельном сегменте, при другом - в общем
 сегменте "кучи". Конечно и то и другое требует небольшой модификации кода
 программ, которые захотят этим механизмом пользоваться. Hо ничего сложного я в
 этом не вижу.
 
  >>   IP> так никаких сегментов не хватит...
  >>  Если я правильно помню(нет под рукой книги) - то на каждую задачу 
  >> может быть 8192 сегментов. Hе так уж много программ, в которых 
  >> требуется _такое_ количество буферов.
  IP> а как определить, некоторая переменная -- буфер или нет ?  наверно
  IP> при таком подходе придётся каждую переменную в свой сегмент пихать.
 
 С одной стороны - не так уж много программ, использующих восемь тысяч
 переменных. Имеется в виду не _один_ массив, а 8к, а именно восемь тысяч
 _отдельных_ именованых переменных. Так что можно и наделать сегментов.
 
 С другой стороны - изложенный выше способ лучше так как позволяет программисту
 управлять размещением переменных.
  IP> в подобной защите ничего плохого конечно же нет.  проблема только в
  IP> том, что её (защиты) нет.  её нужно (нужно ли ?) создать.
 
 Когда-то, и причем не так давно, и Линукса вообще небыло. 
 
  IP> тратить на это время, которое можно потратить на что-то более интересное.
 
 А когда я в середине 90-х впервые поставил на свою машину Линукс - мне тоже
 говорили - "зачем ты с этим возишься, есть же вот какие хорошие вин95, под ними 
 столько игрушек работает". Те люди устраивали соревнования по компьютерным играм
 и приобрели известность в печати, а я зачем-то сидел и учился писать скрипты на 
 bash и настраивать tcp/ip.:-)
 
 Zahar(@spbdept.rbc.ru) Остров Большой Березовый: http://birch-island.spb.ru
 
 --- Msged/LNX 6.1.1
  * Origin: N:60.20' E:28.37' (2:5030/382.1)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: неисполняемый стэк в 2.4 ?   Kirill Frolov   21 Oct 2004 09:02:38 
 Re: неисполняемый стэк в 2.4 ?   Zahar Kiselev   25 Oct 2004 02:10:48 
 Re: неисполняемый стэк в 2.4 ?   Igor Plekhov   25 Oct 2004 15:11:09 
 Re: неисполняемый стэк в 2.4 ?   Zahar Kiselev   25 Oct 2004 18:57:00 
 Re: неисполняемый стэк в 2.4 ?   Igor Plekhov   26 Oct 2004 03:10:34 
 Re: неисполняемый стэк в 2.4 ?   Zahar Kiselev   26 Oct 2004 09:54:40 
 Re: неисполняемый стэк в 2.4 ?   Igor Plekhov   26 Oct 2004 12:00:06 
 Re: неисполняемый стэк в 2.4 ?   Zahar Kiselev   26 Oct 2004 15:14:34 
 Re: неисполняемый стэк в 2.4 ?   Igor Plekhov   27 Oct 2004 02:29:06 
 Re: неисполняемый стэк в 2.4 ?   Slava Astashonok   26 Oct 2004 17:41:47 
 Re: неисполняемый стэк в 2.4 ?   Igor Plekhov   27 Oct 2004 02:07:36 
 Re: неисполняемый стэк в 2.4 ?   Victor Wagner   26 Oct 2004 19:23:38 
Архивное /ru.linux/3288417e6df6.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional