Interested Article - Checked C

Checked C — язык программирования, разработанный в Microsoft Research и ориентированный на максимальную совместимость с C , но обеспечивающий большую безопасность при работе с памятью и, вследствие этого — большую защиту от уязвимостей написанных на нём приложений .

Спецификация языка, примеры и тесты распространяются на условиях MIT license и Final Specification Agreement (обеспечивающего свободу от патентных и копирайтных исков в рамках данного соглашения) .

Нововведения языка

В язык введено ряд новых типов указателей , таких, как:

  • array_ptr<T> — указатель на массив фиксированного размера. Проверка выхода за его границы во время исполнения программы может быть обеспечена автоматически;
  • array_ptr_nt<T> — указатель на элемент массива типа Т , ограниченного символом null .
  • ptr<T> — указатель не требующий проверки выхода за границы, поскольку не используется для вычисления новых адресов. Соответственно, адресная арифметика для указателей такого типа запрещена.

Реализация

Компилятор Checked C доступен в виде модифицированных с целью поддержки CheckedC LLVM / Clang . Компилятор поддерживает 32-х и 64-х разрядные версии Windows , UNIX / Linux и MacOS .

См. также

Примечания

  1. Олег Парамонов. Хакер № 248 (17 июня 2016). Дата обращения: 18 января 2020. 18 мая 2021 года.
  2. David Ramel. (англ.) . ADTmag (16 июня 2016). Дата обращения: 18 января 2020. 13 августа 2020 года.
  3. Abel Avram. . (июнь 2016). Дата обращения: 18 января 2020. 28 октября 2020 года.
  4. A. S. Elliott, A. Ruef, M. Hicks, D. Tarditi. // 2018 IEEE Cybersecurity Development (SecDev). — 2018-09. — С. 53–60 . — doi : . 24 сентября 2020 года.
  5. на сайте GitHub
  6. на сайте GitHub
  7. Готовые бинарные сборки от 13 ноября 2020 на Wayback Machine только для Windows, по сборке исходных текстов для различных платформ являются частью документации компилятора

Литература

  • Andrew Ruef, Leonidas Lampropoulos, Ian Sweet, David Tarditi and Michael Hicks. // International Conference on Principles of Security and Trust. — Springer, Cham, 2019. — С. 76—98 .

Ссылки

  • — официальный сайт Checked C
  • на сайте GitHub
  • на сайте GitHub


Источник —

Same as Checked C