[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Вопросы по созданию пакета.



On Sun, Sep 30, 2012 at 10:10:43PM +0400, "Артём Н." wrote:
> >>>>>> Пока мне не очень понятно зачем это нужно, если возможно полагаться на загрузчик.
> >>>>> Менять .text в рантайме - плохо. Надо пояснять почему?
> >>>> Да, неплохо бы. Ведь, по-идее, изменение производится ещё до передачи
> >>>> управления, так что, такая ли большая разница (если не брать в расчёт протекторы
> >>>> и прочую навесную фигню, которая может при этом не работать)?
> >>> Страницы кода нельзя оставлять readonly (а это несекурно)
> >> Хм... А поставить им аттрибут после патчинга нельзя?
> > Видимо нет.
> Хм... Почему?
Не знаю, но раз не ставят, значит нельзя или не имеет смысла. Возможно,
флаги доступа ставятся линкером, а не лоадером, и это важно (я не очень
хорошо знаю эту тему).

> >> Весть есть библиотеки..?
> > Мы как раз о случае с двумя процессами, загрузившими одну библиотеку.
> Так, вроде, успешно расшаривают..? На что тогда DLL и прочее?
Нельзя шарить страницу, отредактированную в двух процессах, как минимум
потому что она по-разному отредактирована.

> >>> патчинг занимает время.
> >> Ну да. Только вот неизвестно насколько оно больше затрат времени, при выполнении
> >> базонезависимого кода.
> > Как уже было показано, на не-i386 от PIC оверхед незначительный, а на i386
> > другие плюсы всё равно перевешивают..
> > 
> >> И как часто приходится патчить...
> > Всмысле? Каждую инструкцию, вызывающую код из другого объекта.
> В смысле, насколько часто адрес загрузки отличается от базового адреса?
С ASLR (по умолчанию в 2.6.12+) - всегда. Без - тоже всегда, у эльфов
базовый адрес никто не меняет.

> Особенно, для исполняемых файлов (ведь большинство без релоков)?
Не понял вопроса. Исполняемый файл, собранный без PIE, грузится по одному
адресу и обращается к GOT по константному указателю, вычисляемому при
сборке. У собранного с PIE всё точно так же, как у библиотек, если включен ASLR (а
без него включать PIE вроде вообще смысла нет).

-- 
WBR, wRAR

Attachment: signature.asc
Description: Digital signature


Reply to: