СИ-код. Увеличение безопасности кода.

Тема в разделе "WASM.HEAP", создана пользователем NoName, 2 мар 2011.

  1. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    PSR1257
    Это уже предусмотрено, о чем я писал выше. Важные решения принимает только группа адекватных подсистем. Достоинства и недостаток в том что эти подсистемы частично пишутся людьми в форме кода и если проверить наличие локальных static переменных еще можно то многие другие вещи нельзя. Я хотел бы сделать более качественную архитектуру.
     
  2. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    NoName
    Интересно узнать хотя бы одну...

    Вы в С-коде не используете косвенные вызовы(вызовы ф-ции по указателю)?
     
  3. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    NoName
    капец.
    С - гарантировано небезопасный язык. безопасность в нем уменьшена задля гибкости и эффективности. С++ практически такойже в этом отношении.
    и вы тут говорите о какихто разрешениях и требованиях.

    безопасность проводилась в паскалевой ветке алгола. в модуле и, особенно, аде безопасность статическая и динамическая вообще одно из основных требований.

    но и вынь вам не подходит. и не только изза зверинца. и линь тоже.
     
  4. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Впервые такое слышу. Можно подробнее? В какой области такое требование? И что это за мистическая проверка? Какая фирма(корпорация) выдвигает такие требования?
     
  5. Rainghost

    Rainghost New Member

    Публикаций:
    0
    Регистрация:
    12 янв 2011
    Сообщения:
    228
    если все учитывать и проектировать то си безопасный язык... и тестировать...
     
  6. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    и тестировать...и тестировать...и тестировать...и тестировать...и тестировать...и тестировать...и тестировать...и тестировать...и тестировать...и тестировать...
     
  7. intel_x128

    intel_x128 New Member

    Публикаций:
    0
    Регистрация:
    17 май 2009
    Сообщения:
    345
    spa
    Вы - дебил?
    Предлагаю вам пополнить ряды элиты васма, которая "только читает, но уже не пишет".
    Без ваших тупых постов на васме станет лучше.
    Инфа 100%
     
  8. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    Зачем же так жестоко? Тестирование не гарантирует отсутствие ошибок: язык императивный, функции могут хранит состояние которое в тестах и реальном мире может быть разным.
     
  9. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    Rainghost
    если бы да кабы.

    есть языки специально спроектированные для безопасности. есть даже для параноидальной безопасности. там каждый вызов, каждое обращение к памяти, каждое преобразование типов строго описано, а в коде окружается кучей проверок. вероятность случайной ошибки в них очень мала.
    например, ада разрабатывалась по заказу ам военных. по их требованиям. на модулах пишутся проги к самолетам.

    вирт когда писал свой оберон, он уменьшил строгость модулы, но не сильно. потому, оберон тоже неплох в качестве безопастности.

    из осей - тут все зависит от задачи. может быть и кнх (нет прямых связей между модулями. все сообщение через каналы. и если отваливается модуль, то только 1 и может быть, например, перезапущен.), может быть даже и оберон форкнуть.

    вобщем, если идет речь о безопасности, то тут надо думать глубже пары отдельных алгоритмов на асме.
     
  10. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    J0E
    На си можно писать "безопасный код" толькое если.
    1. Очень продуманна архитектура приложения.
    2. Писать предельно аккуратно, буквально параноидально проверяя все и все.
    А так как люди не идеальны, то:
    3. Тестировать, много, много раз. Конечно вероятность фейла останется, но как говорится она будет "крайне мала".


    intel_x128
    Посмотрел ваши посты, дебил здесь скорее вы.
    Уже разобрались с глобальными переменными?
    http://wasm.ru/forum/viewtopic.php?id=33093
     
  11. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    Из-за ошибки переполнения 32х байт самолет уже падал, это мало? Какой смысл в тесте фукнции которая при одних входных параметрах может вернуть разный ответ.
    На С можно писать чистые функции, а стало быть и код поддающийся верификации, автор топика про это в курсе потому что упоминал отслеживание стаических переменных, дкмаю если бы тесты решали его проблему топика бы не было.
     
  12. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    это как?
     
  13. featurelles

    featurelles New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2009
    Сообщения:
    562
    J0E
    Эт вы про что?
     
  14. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.622
    Адрес:
    Russia
    групировка переменных и доступ к ним через функции get/set

    read-only никак не мешает применению принципов ООП - просто метод set или отсутствует или постоянно возвращает ошибку для значений отличных от заданного

    нагуглите исходники доса 6.0 - там есть cow - реализация символьной мини винды
    посмотрите как тыщу лет назад микрософт расширил возможности аналога такого же компилятора - разница только в том что современные компиляторы навязывают парадигму разработки, в то время как там вы вольный сокол и все вкусности можно сделать ручками
     
  15. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    featurelles
    ну, когда исследовали обломки упавшего самолета на осколках бортового компьютера нашли несомненные следы переполнения. единица так и вросла в флаг cf.
     
  16. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    qqwe
    это же ошибка программы, а не языка си, так что я все равно не понял что хотел сказать J0E, да и вообще он говорит про 32 байта
     
  17. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    Rockphorr
    не понял? это как?
     
  18. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    spa
    да там вообще утверждение из репертуара блэкбима.
    переполнение - абсолютно нормальная вещь. оно возникает при арифметических операциях, сдвигах, изменении знака, оно используется при сложении/вычитании длинных чисел.
    и тут на тебе, съехали - в падении самолета виновато переполнение регистра. какое из 3 миллиардов за последнюю секунду? (и "а был ли мальчик?" не, я понимаю, что проще всего все повесить на безответный комп. олухи ж все равно ничего не поймут)

    тут даже вопрос возникает - а знает ли жое что такое переполнение регистра, для чего оно нужно и как используется? а если не знает, то что он делает на форуме както связанном с асмом, а не с детскими лошадками?
     
  19. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.622
    Адрес:
    Russia
    ну это примерно так - берете вы студию и прежде чем приступите к написанию кода она задаст вам несколько уточняющих вопросов в виде диалоговых окон и предоставит солидную болванку будущего приложения, в частности опирающуюся на механизм оконных процедур

    в борланд си это все далеко не очевидно и что этого добиться нужно изрядно потрудиться пиша код опять-же смотрите исходники cow
     
  20. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    Вообще хочу сказать, что си это очевидно не тот выбор для таких задач, для си же просто много надо будет проверок, и много чего надо будет понимать "как это работает".