Здравствуйте, ononim, Вы писали:
B>>так а можно сделать, чтобы клиентский код не мог писать в общий хип напрямую, а только вызывая апи сервиса? но мог читать, т.е. мог разыменовывать указатели из общего хипа B>>тогда нужно будет лишь хорошо проверять входные параметры и всё O>Не очень понял. Если имеется ввиду можно ли сделать хип read-only для непривелигированных процессов — то, конечно, можно. Более того, в винде такое юзается: user32 мапит кусочек session-space в readonly для всех процессов — там есть т.н. desktop и shared heap — они отображаются на юзермода как read-only страницы. Это позволяет обойтись без перехода в кернелмод для многих функций, не требующих изменения состояния, типа IsWindow, WindowFromPoint etc.
я имею ввиду иметь два сегмента юзеркода в одном процессе но у которых разные права на общий сегмент данных
т.е.
код сервиса находится в юзермоде в страницах из которых могут писать в общий сегмент данных
код клиента находится в юзермоде в страницах из которых НЕЛЬЗЯ прямо писать в общий сегмент данных, но можно вызывать код сервиса
такое реально? можно ли настроить разный доступ к одному сегменту с данными двум разным сегментам кода?
и всё — в юзер моде, потому что сервису нужны разные юзер апи
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.