Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
31.07.2015, 16:53
|
|||
|---|---|---|---|
Защита сегментов в 64-х битном режиме |
|||
|
#18+
Спрашиваю на форуме С++, поскольку только среди сишников велика вероятность найти грамотного системщика. Вопрос собственно вот в чем. В фирменном руководстве от 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. Т.е. если я правильно понимаю, то сегменты кода, данных и стека получаются полностью перекрыты в рамках процесса. Но каким образом тогда осуществляется защита от изменения кода или переполнения стека в рамках процесса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.07.2015, 17:07
|
|||
|---|---|---|---|
|
|||
Защита сегментов в 64-х битном режиме |
|||
|
#18+
Сегментов вообще не существует. Флаг защиты ставится на уровне страницы. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.07.2015, 17:18
|
|||
|---|---|---|---|
Защита сегментов в 64-х битном режиме |
|||
|
#18+
Dimitry SibiryakovСегментов вообще не существует. Флаг защиты ставится на уровне страницы. Так страничное преобразование же одинаково для всего процесса. Ну положим запись в код можно им предотвратить. Но как тогда предотвратить переполнение стека? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.07.2015, 17:23
|
|||
|---|---|---|---|
|
|||
Защита сегментов в 64-х битном режиме |
|||
|
#18+
В деталях описано у Рихтера. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.07.2015, 17:27
|
|||
|---|---|---|---|
Защита сегментов в 64-х битном режиме |
|||
|
#18+
Dimitry SibiryakovВ деталях описано у Рихтера. ok Спасибо, будем посмотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.07.2015, 19:44
|
|||
|---|---|---|---|
|
|||
Защита сегментов в 64-х битном режиме |
|||
|
#18+
LeonidНо как тогда предотвратить переполнение стека?Всё той же защитной страницей. Да - накладно на большом количестве мелких стеков, да - защищает не от всех ошибок, но вполне рабочий вариант ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&mobile=1&tid=2018899]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 281ms |
| total: | 438ms |

| 0 / 0 |
