|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Дек 24, 2003 09:32:15 В описании от Intel часть упоминается запрет на запись в сегмент кода. По этому и возник сабжевый вопрос. Ткните пожалуйста туда где это объясняется. ЗЫ. В подписку BrokenSword тыкать не надо. |
|
|
Дата: Дек 24, 2003 10:01:46 все дело в правах доспута в защищенном режиме процессора.... если разрешено - то почему-бы и не писать? |
|
|
Дата: Дек 24, 2003 10:18:22 При чем здесь права доступа, если черным по белому написанно, что нельзя писать в сегмент типа 'code'. Может быть под виндой сегментная защита отключена? А используется только страничная защита? |
|
|
Дата: Дек 24, 2003 10:20:23 Ты, похоже, путаешь сегменты с секциями. Сегмент кода - это CS. Если ты напишешь mov [cs:var],0 то получишь заслуженное исключение. А когда ты пишешь просто mov [var],0 по умолчанию используется сегмент DS, вне зависимости от того, в какой секци находится var. Просто одна и та же память адресуется двумя разными сегментами, в одном из которых можно исполнять код, а во второй писать... |
|
|
Дата: Дек 24, 2003 10:24:26 · Поправил: Valery capgreen запусти сайс и увидишь все атрибуты |
|
|
Дата: Дек 24, 2003 10:29:48 · Поправил: capgreen Чукча умный: CS - это регистр ;) А что будет если загрузить CS в DS что будет? По мои понятиеям всё равно всё должно поламаться. У BS вроде написано что должно работать. ЗЫ. сегментную защиту можно отключить только вместе с сегментной адресацией. ;) |
|
|
Дата: Дек 24, 2003 10:30:07 capgreen Может быть под виндой сегментная защита отключена Ее отключить невозможно. Атрибуты сегментов проверяются раньше страничных |
|
|
Дата: Дек 24, 2003 10:35:42 · Поправил: capgreen Вот что написано у BS: Чтобы не растекаться мыслью по древу сразу скажу: #GP возникнет если: ... при записи в «ИСПОЛНЯЕМЫЙ» сегмент (т.е. писать в сегмент кода нельзя через CS, через DS - пожалуйста); ... так вот мне не понятен этот тезис. а вот что написаноо у Intel No instruction may write into an executable segment. предикат "executable", по-моему, определяется не тем, гда лежит селектор сегмента, а только полем "тип" сегмента. |
|
|
Дата: Дек 24, 2003 11:28:04 Под виндой используется flat model. Т.е. все сегментные регистры (кроме fs) указывают на одну область памяти. Поэтому можно еще и использовать на свое усмотрение регистры EBP & ESP, а не только так как написано в доках у intel. |
|
|
Дата: Дек 24, 2003 11:32:55 Про flat model я в курсе, меня интересует можно таки использовать слектор сегмента кода для записи или нет? |
|
|
Дата: Дек 24, 2003 12:13:12 · Поправил: bsl_zcs Наконец, ты смог правильно сформулировать вопрос. На него ответ прост и однозначен: безусловно, нет. А в той цитате, что ты привёл, лажа. Возможно, эта фраза вырвана из контекста. Тобой или автором статьи... |
|
|
Дата: Дек 24, 2003 12:38:00 · Поправил: capgreen Правильно ли я понимаю, что в Windows используется "Basic Flat Model" (как она описана в доках Intel)? |
|
|
Дата: Дек 24, 2003 19:10:02 Ага. Особенно близко из того описания к ней подходит фраза More complexity can be added to this protected flat model ;) В целом, видимо, да. Но, как я понимаю, рисунок не подходит - пропуска физически отсутствующей памяти там нет. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.158 |