PVS-Studio – статический анализатор на страже качества, защищённости (SAST) и безопасности кода
1. Скачать дистрибутив
2. Запросить триал
3. Запросить цены
1. Скачать дистрибутив
Скачайте дистрибутив анализатора PVS‑Studio
--Выберите платформу--
Linux
macOS(Intel)
macOS(Apple Silicon)
Windows
--Выберите язык--
C,
C++
C#
Java
--Формат дистрибутива--
rpm
deb
tgz
rpm
deb
tar.gz
pkg
tgz
tar.gz
pkg
tgz
tar.gz
exe
exe
exe
Быстрый запуск
Скачать дистрибутив
2. Запросить триал
Запросите триальный ключ для тестирования возможностей анализатора
3. Запросить цены
Запросите информацию о ценах
Что такое PVS‑Studio?
Давайте мы расскажем об этом!
В этом небольшом видео мы затронем самые важные темы и аспекты статического анализатора PVS-Studio. Вы узнаете не только, как он может вам помочь, но и какие в нём используются механизмы и подходы.
Анализатор PVS-Studio выявляет не только опечатки, мёртвый код и другие ошибки, но и потенциальные уязвимости (Static Application Security Testing, SAST).
Анализатор отображает предупреждения на Common Weakness Enumeration, SEI CERT Coding Standards, а также поддерживает стандарт MISRA.
Таблицы соответствий диагностик PVS-Studio различным стандартам:
За годы работы мы сформировали коллектив настоящих экспертов в области анализа кода.
Сами разработчики анализатора помогают клиентам в решении разных вопросов.
Возможность офлайн-использования
Вы можете использовать наш продукт офлайн на всех этапах. Установка, активация и запуск
не требуют от вас подключения к сети. Это идеальное решение для компаний,
которые ведут изолированную разработку, например, в финансовой сфере.
Простоту использования
Быстро попробовать анализатор без интеграции в проект можно с помощью системы
мониторинга компиляции, которая разработана для Windows и Linux.
Диагностические возможности
Мы разработали более 1100 диагностических правил и добавляем новые каждый месяц.
Кроссплатформенность
Сейчас выгоднее выпускать программные продукты под несколько платформ сразу.
Кроссплатформенный анализатор обеспечивает таким клиентам полное покрытие кода.
Удобные отчёты анализатора
Доступны в форматах Html, Xml, Csv, Txt, Json, CompileError, TaskList, TeamCity.
А сам генератор опубликован на GitHub для пользовательских модификаций.
Удобный CLI
Нет ничего проще, чем запустить анализатор из командной строки или
интегрировать запуск в скрипт сборки или CI.
Плагины
Для улучшения взаимодействия с анализатором предоставляются плагины для Visual Studio,
IntelliJ IDEA, Rider, SonarQube, Jenkins и других подобных продуктов.
Режим проверки Lеgаcy-кода
Внедрение анализаторов часто останавливает объём существующей
кодовой базы. Но только не PVS-Studio. Уже с первого дня PVS-Studio можно использовать
для проверки нового кода, а предупреждения на старый (Legacy) код можно
скрыть до востребования.
Работу с ложными срабатываниями
Методология статического анализа предполагает наличие ложных предупреждений.
И кроме обращения в поддержку, пользователи имеют множество способ борьбы с ними,
которые делают работу с анализатором очень комфортной.
Количество диагностик в PVS-Studio растет из года в год
Количество диагностик
Количество диагностик
Годы
Как PVS-Studio все это делает?
Препроцессирование (preprocessing) исходных C и C++ файлов позволяет,
основываясь на параметрах компиляции, раскрывать директивы препроцессора:
включать заголовочные файлы и подставлять макросы. Используется для создания
наиболее полной семантической модели (semantic model) проверяемого кода.
Сигнатурный анализ (сопоставление с шаблоном, pattern-based analysis)
на основе абстрактного синтаксического дерева применяется для поиска мест в
исходном коде, которые похожи на известные шаблоны кода с ошибкой.
Аннотирование методов (method annotations)
предоставляет больше информации об используемых методах, чем может быть
получено путём анализа только их сигнатуры.
Анализ потока данных (data-flow analysis)
используется для вычисления ограничений, накладываемых на значения
переменных при обработке различных конструкций языка. Например, какие значения может
принимать переменная внутри блоков if/else.
Символьное выполнение (symbolic execution)
позволяет вычислять значения переменных, которые могут приводить к ошибкам,
производить проверку диапазонов (range checking) значений.
Вывод типов (type inference)
на основе семантической модели программы позволяет анализатору иметь полную
информацию обо всех переменных и выражениях, встречающихся в коде.
Анализ помеченных данных (tainted data analysis)
позволяет обнаруживать случаи, когда данные от пользователей
используются без предварительной проверки. Излишнее доверие к входным
данным является причиной различных уязвимостей (например, SQLI, XSS, path traversal).
Межмодульный анализ (intermodular analysis) позволяет во время анализа учитывать в
диагностических правилах информацию о функциях, объявленных в других единицах трансляции.
Анализ компонентного состава ПО (Software Composition Analysis, SCA) используется,
чтобы искать зависимости приложения от компонентов, которые содержат уязвимости.
Хотите получить ключ на использование анализатора в пробный период?