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

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



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

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

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

> Или в Linux нет чего-то подобного kernel32.dll (т.е. всё только через libc
> обёртки над системными вызовами, через прерывания, например)?
Уточните вопрос.

-- 
WBR, wRAR

Attachment: signature.asc
Description: Digital signature


Reply to: