01.10.2012 21:46, Andrey Rahmatullin пишет: >>>>>>>> И как часто приходится патчить... >>>>>>> Всмысле? Каждую инструкцию, вызывающую код из другого объекта. >>>>>> В смысле, насколько часто адрес загрузки отличается от базового адреса? >>>>> С ASLR (по умолчанию в 2.6.12+) - всегда. Без - тоже всегда, у эльфов >>>>> базовый адрес никто не меняет. >>>> Хм... Любопытно, тогда как работает ASLR для библиотек, в которых секция >>>> кода >>>> разделяется? >>> Разделяется между чем? >> Между двумя процессами, использующими данную библиотеку. > А в чём проблема? Содержимое страницы не меняется, хоть она и мапится в > разные адреса для разных процессов. Тут я снова вас ввёл в заблуждение (я не в лучшем состоянии и туго соображаю). До того весь вопрос был про релоки. Если библиотека не базонезависима и содержит релоки, её образ изменяется загрузчиком, при загрузке по адресу отличному от базового. Такие библиотеки не могут быть разделены, если находятся по разным адресам в разных процессах? Т.е., при использовании ASLR обязательно нужен PIE, иначе ASLR просто не может работать?
И есть ли что-то похожее на релокации в Linux? >> 2. Нет ли у вас ссылок на вменяемую литературу по данной теме, отличающуюся >> от >> исходников ядра по содержанию (больше обзорную, чем перегруженную тех. >> подробностями)? > Understanding the Linux Kernel Эм... А на русском? -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

