|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.08.2014, 13:56 | #1 |
Пользователь
Регистрация: 31.07.2014
Сообщений: 48
|
Выход за границы массива, имеет-ли смысл в виртуальных адресах?
Здравствуйте.
В своей книге, Герберт Шилдт утверждает, что ввод данных за границу массива может привести к плачевным результатам не только для программы, но и для всей ОС. Но, учитывая тот факт, что адресация была свободной только до Windows 2000, я делаю предположение, что разграничение массива может привести к плохому результату только в виртуальном пространстве адресов, то есть только внутри программы, т.к. адресация идет именно внутри программы. Я понимаю это так : Если я выйду за границу массива, то есть шанс того, что я невольно разрушу/изменю значения своих других переменных в своей программе. Отсюда у меня возникает три вопроса. 1) Правильно-ли я все понял? 2) А что будет, если я выйду за границу массива, но его граница будет являться последним зарезервированным адресом в памяти для моей программы, что произойдет в таком случае? Пример: Код:
К примеру, в Linux или BSD? Там с любых версий адресация была виртуальной или как? Заранее спасибо за ответы. |
27.08.2014, 14:07 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
в общем-то только внутри, за исключением нескольких случаев прога убьет сама себя.
но выход за границы массивов может привести к уязвимостям что может привести уже к вреду за пределами проги. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
27.08.2014, 14:30 | #3 |
Пользователь
Регистрация: 31.07.2014
Сообщений: 48
|
|
27.08.2014, 15:51 | #4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,343
|
самоудалено
|
27.08.2014, 16:46 | #5 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
скажем если ваша программа сервер.
и определенные данные могут перехватить управление в вашем ПО, и далее чужой код выполнится от имени вашего приложения. (причем код может быть абсолютно внешний) или скажем прога откроет неверный файл изза этого. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выход за границы массива | 220Volt | Общие вопросы C/C++ | 7 | 01.07.2013 07:55 |
Выход за границы диапазона типа byte в Pascal | Dianasobaka | Помощь студентам | 5 | 30.11.2012 14:06 |
Выход за границы массива | weech | Помощь студентам | 8 | 30.04.2012 23:52 |
Паскаль. Выдёт ошибку "выход за границы диапазона" | Winterfox | Помощь студентам | 1 | 04.12.2011 14:13 |
Ошибка "выход за границы диапазона" | Luuun | Помощь студентам | 6 | 28.01.2010 22:39 |