|
|
  |
Самая дорогая однобайтовая ошибка., Просто интересная статья)) |
|
|
|
Aug 19 2011, 20:00
|

Местный
  
Группа: Свой
Сообщений: 231
Регистрация: 19-12-08
Из: Новосибирск
Пользователь №: 42 594

|
Цитата(sigmaN @ Aug 20 2011, 02:42)  Ухх! Не ожидал, что статья вызовет такую дискуссию. Очень рад, что всем понравилось )) холивар жив! К сожалению ни аффтар статьи, ни половина дискутёров не разобрались с сутью безопасности кода. Нуль на конце плох не тем, что сервис "упадёт", а тем, что злоумышленник может незаметно внедрить свой малварь на место того нуля. Уважаемым имбеддерам то не грозит, потому оне не ведают, а между тем у всеми любимого луниха есть проблема, которую маздай умеет решать (правда болшой кровею). Время рассудит.
|
|
|
|
|
Aug 19 2011, 20:23
|

I WANT TO BELIEVE
     
Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751

|
Почему это Цитата Уважаемым имбеддерам то не грозит, потому оне не ведают ??? Не, ну канеш если это вброс такой - тогда понятно. Вопросов нет. Вы уж простите, но кажется вам подсунули какой-то неправильный MSDN. Там просто таки целый список нулл терминэйтэд функций найти можно... В общем слабоват вброс... Никуда не гдиццо ))
--------------------
The truth is out there...
|
|
|
|
|
Aug 20 2011, 05:08
|

Местный
  
Группа: Свой
Сообщений: 231
Регистрация: 19-12-08
Из: Новосибирск
Пользователь №: 42 594

|
Цитата(sigmaN @ Aug 20 2011, 03:23)  нулл терминэйтэд функций найти можно... В общем слабоват вброс... (Да, от обиды, говорят мыльные пузыри лопаются..) Это я не Вам, так - к слову. Переведите, пожалуйста, если можете, на человеческий язык "нулл терминэйтед функций" - и ладно. Я, собственно, зашёл сюда поглядеть, не придумал ли SSerge причину, отчего в языке может не быть строк. Молчит, стало быть, тоже обижается. А ведь есть ответ - слово из трёх букв. Так вот, WDM прямо требует не использовать текстовые строки. (Кто не знает, исходники WDM/WDF драйверов - процентов на 70 - C/C++) Вместо языковых строковых констант используется макро UNICODE_STRING Что до имбеддеров (haker_fox меня понял, спасибо), то я им был, я их есть и, даст Бог, какое-то время буду. По совместительству.
|
|
|
|
|
Aug 20 2011, 11:07
|
Профессионал
    
Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528

|
Цитата(svss @ Aug 20 2011, 12:08)  Я, собственно, зашёл сюда поглядеть, не придумал ли SSerge причину, отчего в языке может не быть строк. Молчит, стало быть, тоже обижается. А ведь есть ответ - слово из трёх букв. Да разве-ж то строки? Так, инициализаторы массивов, да и те какие-то недоделанные.
--------------------
Russia est omnis divisa in partes octo.
|
|
|
|
|
Aug 21 2011, 11:57
|

Профессионал
    
Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357

|
Цитата(svss @ Aug 20 2011, 00:00)  К сожалению ни аффтар статьи, ни половина дискутёров не разобрались с сутью безопасности кода. Вы также входите в число этих дискутеров. Цитата(svss @ Aug 20 2011, 00:00)  Нуль на конце плох не тем, что сервис "упадёт", а тем, что злоумышленник может незаметно внедрить свой малварь на место того нуля. Это называется "слышал звон, да не знаю где он". А если строка будет начинаться с длины, то злоумышленник не может незаметно ее заменить? Вообще-то суть безопасности кода заключается в некоторых функциях, работающих со строками, которым не передается размер буфера, в которую надо поместить строку. Если буфер будет недостаточным (или злоумышленник передаст достаточно длинную строку), то она затрет память, находящуюся за пределами строки. Если этот буфер для строки выделен в стеке, то подойдя к процессу творчески можно с передаваемой строке передать свой код и затереть адрес возврата таким образом, чтобы управление передалось на этот код. Но к null-terminated строкам это имеет весьма отдаленное отношение - программист должен проверять поступаемые данные. Это все равно, что обвинять Си в том, что при обращении к массиву он не проверяет, не выходит ли индекс за его пределы.
Сообщение отредактировал 777777 - Aug 22 2011, 06:06
|
|
|
|
|
Aug 22 2011, 04:03
|

Профессионал
    
Группа: Свой
Сообщений: 1 003
Регистрация: 20-01-05
Пользователь №: 2 072

|
Цитата(Rst7 @ Aug 19 2011, 16:07)  Автор статьи вообще мало что понимает в этих самых компьютерах. Поделитесь копирайтом на фразу?  Автор широко известен в узких кругах своими безапелляционными заявлениями. А как программист, он вроде и ничего. Вот выдержка с его домашней страницы. Цитата Partial highlights:
Wrote src/release/Makefile Release engineer for FreeBSD 2.X series Rewrote the VFS namecache Cleaned up vnode object model Usable sysctls MD5 based password scrambler Phkmalloc Jails Defined sbufs for safe string handling DEVFS and dynamic device support GEOM, modular disk transformations. GBDE , disk encryption you can actually use. Numerous more or less weird device drivers Tons of other stuff I've forgotten now
|
|
|
|
|
Aug 25 2011, 13:55
|

Местный
  
Группа: Свой
Сообщений: 231
Регистрация: 19-12-08
Из: Новосибирск
Пользователь №: 42 594

|
Цитата(zltigo @ Aug 20 2011, 17:15)  "макро UNICODE_STRING" это не макро DECLARE_CONST_UNICODE_STRING DECLARE_UNICODE_STRING_SIZE Я знаю, что кратко - не всегда ясно. Прошу прощения.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|