powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Защита сегментов в 64-х битном режиме
6 сообщений из 6, страница 1 из 1
Защита сегментов в 64-х битном режиме
    #39020663
Фотография Leonid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спрашиваю на форуме С++, поскольку только среди сишников велика вероятность найти грамотного системщика.

Вопрос собственно вот в чем.
В фирменном руководстве от Intel читаем следующее:

"Intel 64 and IA-32 Architectures Software Developer’s Manual" 3.3.4
...
64-bit mode — Segmentation is generally (but not completely) disabled
, creating a flat 64-bit linear-address
space. Specifically, the processor treats the segment base of CS, DS, ES, and SS as zero in 64-bit mode (this
makes a linear address equal an effective address). Segmented and real address modes are not available in 64-
bit mode.

3.4.2.1
In 64-bit mode: CS, DS, ES, SS are treated as if each segment base is 0 , regardless of the value of the associated
segment descriptor base. This creates a flat address space for code, data, and stack .
...
Limit checks for CS, DS, ES, SS, FS, and GS are disabled in 64-bit mode.
Т.е. если я правильно понимаю, то сегменты кода, данных и стека получаются полностью перекрыты в рамках процесса.
Но каким образом тогда осуществляется защита от изменения кода или переполнения стека в рамках процесса?
...
Рейтинг: 0 / 0
Защита сегментов в 64-х битном режиме
    #39020694
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сегментов вообще не существует. Флаг защиты ставится на уровне страницы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Защита сегментов в 64-х битном режиме
    #39020703
Фотография Leonid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovСегментов вообще не существует. Флаг защиты ставится на уровне страницы.

Так страничное преобразование же одинаково для всего процесса.
Ну положим запись в код можно им предотвратить. Но как тогда предотвратить переполнение стека?
...
Рейтинг: 0 / 0
Защита сегментов в 64-х битном режиме
    #39020711
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В деталях описано у Рихтера.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Защита сегментов в 64-х битном режиме
    #39020716
Фотография Leonid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovВ деталях описано у Рихтера.
ok Спасибо, будем посмотреть.
...
Рейтинг: 0 / 0
Защита сегментов в 64-х битном режиме
    #39020790
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidНо как тогда предотвратить переполнение стека?Всё той же защитной страницей.
Да - накладно на большом количестве мелких стеков, да - защищает не от всех ошибок, но вполне рабочий вариант
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Защита сегментов в 64-х битном режиме
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]