﻿# PVS\-Studio 7\.34: поддержка Apple Silicon ARM64, проектов для \.NET 9, taint\-анализа в Java анализаторе

Вышел новый релиз PVS\-Studio — 7\.34\. Поддержка процессоров Apple Silicon с архитектурой ARM64, поддержка проектов для \.NET 9, внедрение механизма taint\-анализа в Java анализатор и это ещё не всё\! Больше подробностей в этом пресс\-релизе\.

![1200_Press_release7_34_ru/image1.png](https://import.viva64.com/docx/blog/1200_Press_release7_34_ru/image1.png)

Загрузить актуальную версию PVS\-Studio можно [здесь](https://pvs-studio.ru/ru/pvs-studio/download/)\.

**PVS\-Studio теперь доступен для Apple Silicon ARM64**

Анализаторы PVS\-Studio для операционных систем семейства macOS теперь поддерживают процессоры Apple Silicon с архитектурой ARM64, что открыло новые горизонты для пользователей macOS\. С выпуском версии 7\.34 стали доступны нативные сборки, позволяющие использовать все преимущества новой платформы\. 

**C\# анализатор PVS\-Studio поддерживает проекты для \.NET 9**

Теперь пользователи могут выполнять статический анализ кода, написанного на C\#, с учётом всех нововведений и функций \.NET 9\. 

В связи с этим изменились требования C\# анализатора на Windows, более подробно про эти и другие изменения смотрите под заголовком Breaking Changes\.

**Внедрение механизма taint\-анализа в Java анализатор PVS\-Studio**

В последнем обновлении Java анализатора PVS\-Studio был внедрён механизм для проведения taint\-анализа\. На основе этого механизма было разработано первое диагностическое правило [V5309](https://pvs-studio.ru/ru/docs/warnings/v5309/), предназначенное для поиска SQL\-инъекции\.

В следующем году в Java анализаторе будет сделан упор на SAST, покрытие списка наиболее распространённых потенциальных уязвимостей [OWASP Top\-10](https://pvs-studio.ru/ru/blog/terms/6458/), а также разработку диагностических правил для taint\-анализа\.

**Режим проверки модифицированных файлов**

В утилиты командной строки `PVS-Studio_Cmd` и `pvs-studio-dotnet` был добавлен режим проверки модифицированных файлов, позволяющий автоматически обнаружить изменённые между запусками анализа исходные файлы\. Данный режим является альтернативой инкрементальному анализу и может быть полезен при проверке Pull Request'ов\. 

Подробнее о новом режиме можно прочитать в [документации](https://pvs-studio.ru/ru/docs/manual/0055/#modified_files)\.

**Отображение критических ошибок согласно ГОСТ**

В [плагин PVS\-Studio](https://pvs-studio.ru/ru/docs/manual/6646/) для Visual Studio Code и утилиту командной строки [`plog-converter`](https://pvs-studio.ru/ru/docs/manual/0038/#plog-converter) была добавлена возможность отображения критических ошибок согласно [ГОСТ Р 71207\-2024](https://habr.com/ru/companies/pvs-studio/articles/844070/)\. Это позволит автоматически выявлять и классифицировать в коде ошибки, соответствующие новым стандартам\.

**Просмотр результатов анализа в веб\-интерфейсе CodeChecker**

С выходом новой версии [CodeChecker](https://github.com/Ericsson/codechecker) 6\.25\.0 пользователи получат возможность загружать отчёты PVS\-Studio прямо в веб\-интерфейс для удобного просмотра результатов анализа кода\. Подробнее об интеграции можно прочитать в [документации](https://pvs-studio.ru/ru/docs/manual/6819/)\.

**Гибкая настройка включения в анализ файлов**

Добавлена возможность гибкой настройки включения или выключения из анализа исходных файлов и файлов настроек `.pvsconfig`\. Также данный механизм можно будет использовать для проверки Unreal Engine проектов с помощью UnrealBuildTool, начиная с версии 5\.5\.2\. Подробнее можно прочитать в [документации](https://pvs-studio.ru/ru/docs/manual/6630/#exclude_files)\.

**Breaking Changes**

Данные изменения ломают обратную совместимость с предыдущими версиями анализатора\. В связи с ними вам может потребоваться изменить способ использования анализатора\.

Изменились требования C\# анализатора на Windows: 

* для анализа \.NET проектов теперь потребуется установка \.NET 9 SDK;
* для анализа \.NET, \.NET Standard и \.NET Framework SDK\-style проектов также потребуется \.NET SDK 9;
* требования по проверке не изменились для классических \.NET Framework проектов: если в системе установлены Visual Studio или MSBuild версий 2017, 2019 или 2022, достаточно наличия в системе \.NET Framework 4\.7\.2; 
* для классических \.NET Framework проектов в системах с Visual Studio или MSBuild версий 2015 или более старых теперь также будет требоваться присутствие \.NET 9 SDK; 
* При использовании silent режима установки на Windows, если необходимо запускать анализ на проектах, которые теперь требуют наличия в системе \.NET 9 SDK, потребуется указать компонент DOTNET для установки \.NET 9 SDK, если SDK не был установлен в системе отдельно\.

В утилите командной строки [`pvs-studio-analyzer`](https://pvs-studio.ru/ru/docs/manual/6615/#flags) изменено поведение флага флага `--sourcetree-root (-r) `\. При подмене путей в генерируемом отчёте путь до базовой директории проверяется на существование:

* если часть путей не получилось подменить, то выдаётся сообщение с предупреждением, но код возврата останется равным 0; 
* если же не получилось подменить ни один путь, то помимо сообщения с предупреждением, код возврата будет ненулевым\.

**Новые диагностические правила**

C, C\+\+:

* [V1116](https://pvs-studio.ru/ru/docs/warnings/v1116/)\. Creating an exception object without an explanatory message may result in insufficient logging\.
* [V1117](https://pvs-studio.ru/ru/docs/warnings/v1117/)\. The declared function type is cv\-qualified\. The behavior when using this type is undefined\.
* [V2022](https://pvs-studio.ru/ru/docs/warnings/v2022/)\. Implicit type conversion from integer type to enum type\.
* [V5014](https://pvs-studio.ru/ru/docs/warnings/v5014/)\. OWASP\. Cryptographic function is deprecated\. Its use can lead to security issues\. Consider switching to an equivalent newer function\.

C\#:

* [V3207](https://pvs-studio.ru/ru/docs/warnings/v3207/)\. The 'not A or B' logical pattern may not work as expected\. The 'not' pattern is matched only to the first expression from the 'or' pattern\.
* [V3208](https://pvs-studio.ru/ru/docs/warnings/v3208/)\. Unity Engine\. Using 'WeakReference' instance with 'UnityEngine\.Object' is not supported\. GC will not properly reclaim memory from this object because it is linked to a native object\.
* [V3209](https://pvs-studio.ru/ru/docs/warnings/v3209/)\. Unity Engine\. Re\-applying await to an Awaitable object will result in an exception\.
* [V3210](https://pvs-studio.ru/ru/docs/warnings/v3210/)\. Unity Engine\. Unity does not allow removing the 'Transform' component using 'Destroy' or 'DestroyImmediate' methods\. The method call will be ignored\.
* [V4007](https://pvs-studio.ru/ru/docs/warnings/v4007/)\. Unity Engine\. Avoid creating and destroying UnityEngine objects in performance\-sensitive context\. Consider activating and deactivating them instead\.

Java:

* [V6123](https://pvs-studio.ru/ru/docs/warnings/v6123/)\. Modified value of the operand is not used after the increment/decrement operation\.
* [V6124](https://pvs-studio.ru/ru/docs/warnings/v6124/)\. Converting an integer literal to the type with a smaller value range will result in overflow\.
* [V6125](https://pvs-studio.ru/ru/docs/warnings/v6125/)\. Calling the 'wait', 'notify', and 'notifyAll' methods outside of synchronized context will lead to 'IllegalMonitorStateException'\.
* [V5309](https://pvs-studio.ru/ru/docs/warnings/v5309/)\. Possible SQL injection\. Potentially tainted data is used to create SQL command\.

**Анонс нового вебинара**

![1200_Press_release7_34_ru/image2.png](https://import.viva64.com/docx/blog/1200_Press_release7_34_ru/image2.png)

**Использование статических анализаторов кода при разработке безопасного ПО**

В апреле 2024 года вышел ГОСТ Р 71207\-2024, посвящённый разработке безопасного программного обеспечения, а точнее использованию статических анализаторов в этом процессе\. В данном вебинаре разберём, что этот стандарт регулирует, а также что нужно изменить в рабочем процессе, чтобы ему соответствовать\.

Вебинар пройдёт 19 декабря 14:00, регистрация доступна по [ссылке](https://pvs-studio.ru/ru/webinar/)\.

**Статьи**

Для тех, кто пишет на C\+\+:

* Путеводитель C\+\+ программиста по неопределённому поведению: [часть 7](https://pvs-studio.ru/ru/blog/posts/cpp/1174/), [часть 8](https://pvs-studio.ru/ru/blog/posts/cpp/1178/), [часть 9](https://pvs-studio.ru/ru/blog/posts/cpp/1182/), [часть 10](https://pvs-studio.ru/ru/blog/posts/cpp/1193/), [часть 11](https://pvs-studio.ru/ru/blog/posts/cpp/1199/)\.
* [Отладка вашего "процессора" вместе с Андерсом Шау Кнаттеном, автором книги "C\+\+ Brain Teasers: Exercise Your Mind"](https://pvs-studio.ru/ru/blog/posts/cpp/1196/)
* [Гадание на пяти строчках: о чем молчит программа](https://pvs-studio.ru/ru/blog/posts/cpp/1191/)
* [История C и C\+\+\. Часть первая: появление и стандартизация C, C with Classes становится C\+\+](https://pvs-studio.ru/ru/blog/posts/cpp/1189/)
* [19 ошибок в LLVM 19](https://pvs-studio.ru/ru/blog/posts/cpp/1188/)
* [Дебажим баги в дебаггере x64dbg\. "Шаг с выходом" в GUI](https://pvs-studio.ru/ru/blog/posts/cpp/1187/)
* [Дюжина ошибок мессенджера Telegram](https://pvs-studio.ru/ru/blog/posts/cpp/1186/)
* [DPDK: 100 больших и маленьких багов](https://pvs-studio.ru/ru/blog/posts/cpp/1183/)
* [Поиск ошибок в юнит\-тестах](https://pvs-studio.ru/ru/blog/posts/cpp/1179/)
* [Игровое поле экспериментов: какие ошибки могут подстерегать программиста при создании эмулятора](https://pvs-studio.ru/ru/blog/posts/cpp/1177/)
* [Самая красивая ошибка, которую я нашёл с помощью PVS\-Studio в 2024 году](https://pvs-studio.ru/ru/blog/posts/cpp/1176/)

Для тех, кто пишет на C\#:

* [Как одна строка может положить приложение? Поиск проблем и уязвимостей в ScreenToGif](https://pvs-studio.ru/ru/blog/posts/csharp/1194/)
* [Что нового в \.NET 9?](https://pvs-studio.ru/ru/blog/posts/csharp/1184/)
* [\.NET Digest \#4](https://pvs-studio.ru/ru/blog/posts/csharp/1180/)
* [Поймай уязвимость своими руками: пользовательские аннотации C\# кода](https://pvs-studio.ru/ru/blog/posts/csharp/1175/)
* [Обзор нововведений в C\# 13](https://pvs-studio.ru/ru/blog/posts/csharp/1173/)
* [Что нового в Unity 6? Обзор нововведений и ошибок в исходном коде](https://pvs-studio.ru/ru/blog/posts/csharp/1172/)
* [Исходный код на прощание: разбор ошибок в проектах закрывшейся инди\-студии](https://pvs-studio.ru/ru/blog/posts/csharp/1169/)

Для тех, кто пишет на Java:

* [Поиск потенциальных уязвимостей в коде, часть 1: теория](https://pvs-studio.ru/ru/blog/posts/java/1198/)
* [Внутри Java Enterprise кода: проверка Flowable](https://pvs-studio.ru/ru/blog/posts/java/1195/)
* [Сериализация в Java\. Давайте разбираться](https://pvs-studio.ru/ru/blog/posts/java/1190/)
* [YYYY? yyyy\!](https://pvs-studio.ru/ru/blog/posts/java/1185/)
* [Скажем нет "Превращению", или анализ Kafka](https://pvs-studio.ru/ru/blog/posts/java/1171/)

Статьи общей тематики:

* [CodeChecker — контроль качества кода с использованием PVS\-Studio](https://pvs-studio.ru/ru/blog/posts/1197/)
* [Самый вечный календарь](https://habr.com/ru/companies/pvs-studio/articles/865808/)
* [Где нас носило: все конференции PVS\-Studio за 2024 год](https://habr.com/ru/companies/pvs-studio/articles/865634/)
* [Обновляем мерч: шо, опять?](https://pvs-studio.ru/ru/blog/posts/1181/) 
* [От ВАЛЛ\-И до Терминатора: баги, принципы работы и фантазии разработчиков](https://pvs-studio.ru/ru/blog/posts/1192/)

**Вебинары**

**Парсим С\+\+**

На вебинаре "Парсим C\+\+" Олег Лысый, наш C\+\+ разработчик, обсудил грамматические конструкции языка C\+\+ и их функционирование\. Также он рассмотрел различные типы парсеров и выяснил, почему парсинг C\+\+ представляет собой сложную задачу\. А ещё Олег раскрыл полезные хитрости, которые помогут избежать чрезмерного замедления при парсинге\.

<https://vk.com/video_ext.php?oid=-11805870&id=456239485&hash=952b0e4a90619758>

**C\# разработка и статический анализ: в чем практическая польза?**

В этом вебинаре наш C\# разработчик Глеб Асламов рассказал, какие реальные проблемы может выявить статический анализатор для проектов на C\#\. 

Может ли он находить только незакрытые скобки, плохие названия переменных или уязвимости в коде? Или может что\-то большее?

<https://vk.com/video_ext.php?oid=-11805870&id=456239498&hash=44f2f49b8a4f68b9>

**МАСКОМ УЦ — Вебинар N7 серии вебинаров РБПО: Давайте разбираться вместе\!**

На вебинаре Андрей Карпов, директор по маркетингу, делится практическими знаниями о статическом анализаторе PVS\-Studio и его роли в обеспечении качества, защищённости и безопасности кода\. Там же обсудили безопасность мобильных приложений и сертификацию процессов БРПО средств защиты информации\.

<https://vk.com/video_ext.php?oid=-11805870&id=456239515&hash=b6ff8f83ec0cfbb8 >

**PVS\-Studio в CI/CD\. Автоматизация регулярного статического анализа на примере интеграции с Jenkins**

В этом вебинаре C\# разработчик Валерий Филатов и C\+\+ разработчик Тарас Шевченко обсудили, зачем интегрировать статический анализ в CI/CD, и какие преимущества это привнесёт в процесс разработки\. Также в вебинаре рассмотрели способ интеграции статического анализатора PVS\-Studio в Jenkins и SonarQube\.

<https://vk.com/video_ext.php?oid=-11805870&id=456239495&hash=28ce927019527370>

**Доклады**

**ГОСТ Р 71207–2024: безопасная разработка и статический анализ — о чём он?**

Наш C\# разработчик Глеб Асламов выступил на мероприятии SQA Days 35\. В докладе он обсудил ключевые аспекты нового ГОСТ Р 71207\-2024, посвящённого статическому анализу программного обеспечения\. Рассказал о том, какие инструменты могут обеспечить безопасную разработку, как правильно организовать процесс анализа и какие новые требования входят в стандарт\. 

<https://vk.com/video_ext.php?oid=-31054583&id=456239064&hd=2>

**Статический анализ\. Что? Как? Зачем?**

В докладе нашего C\+\+ разработчика Евгения Фёклина на мероприятии C\+\+ meetup мы погрузились в мир статического анализа кода\. Как он помогает писать безопасный и качественный код? Евгений рассказал о ключевых подходах, инструментах для статического анализа и их значении в процессе разработки\. Узнайте, как улучшить качество вашего кода и избежать распространённых ошибок с помощью статического анализатора\.

<https://www.youtube.com/watch?v=istZ5bWV3hI>

**Подкасты**

**Соер\.Клуб: поговорим про компиляторы**

Наш разработчик на C\+\+ Юрий Минаев побывал на подкасте "Соер\.Клуб: поговорим про компиляторы", где участники поговорили о работе с компиляторами и их устройстве, а также о роли деревьев в представлении программного кода\.

<https://www.youtube.com/watch?v=_KJ0bvnssuc>

**Интервью**

**PVS\-Studio: безопасность кода – наша работа**

В эксклюзивном интервью на X Федеральном форуме по IT и цифровым технологиям нефтегазовой отрасли SMART OIL & GAS Михаил Гельвих, С\+\+ разработчик, и Екатерина Хренова, руководитель отдела продаж, обсудили важность безопасности кода в современных проектах\. Узнайте, как инструменты статического анализа помогают повысить качество и безопасность программного\.

<https://vk.com/video_ext.php?oid=-223262893&id=456239489&hash=5ea5efb21b92b0de>

**Видео**

**История о том, как мы на конференции съездили**

Недавно побывали на трёх топовых конференциях\. В этом веселом видео вы увидите, как гости нашего стенда проходили наши программистские испытания\.

<https://vk.com/video_ext.php?oid=-11805870&id=456239500&hash=fd35333bf70bea51>

**Время вспомнить constexpr\!**

В недавнем видео мы поговорили о функции `constexpr` в языке программирования C\+\+, объяснили, что такое `constexpr`, как его использовать и какие преимущества он может дать разработчикам\.

<https://vk.com/video_ext.php?oid=-11805870&id=456239496&hash=056f23a023b483a2>

**Самая жуткая история из жизни программиста**

В этом видео в честь Хэллоуина мы рассказали самую жуткую историю из жизни программиста\. Эта история о том, как неожиданные проблемы в коде могут привести к ужасным последствиям\.

<https://vk.com/video_ext.php?oid=-11805870&id=456239487&hash=4c2b6a4c8fd116a2>

Хотите проверить свой проект с помощью PVS\-Studio? Начните с этой [страницы](https://pvs-studio.ru/ru/pvs-studio/try-free/)\.

Если вы хотите получать новости о новых релизах, можете подписаться на рассылку от команды PVS\-Studio по [ссылке](https://pvs-studio.ru/ru/subscribe/)\.