
Открытый источник и бесплатно использовать статический анализатор исполняемых файлов. Обнаружает ряд различных проблем, которые обычно находятся вне досягаемости других инструментов (таких как анализ статического кода).
Веб-сайт: https://binary-valentine.com
Документация: https://binary-valentine.com/docs

System32 Windows 10 за 10-20 секунд. Binary Valentine в настоящее время поддерживает только портативный исполняемый формат (который широко используется в Windows, EFI, X-Box). Для этого формата он обнаруживает различные проблемы:
Для портативного исполняемого файла в настоящее время предоставляется более 180 правил. Большинство правил являются однонаправленными, но некоторые из них делают комбинированные сканирования (например, информация о версии перекрестной проверки согласованности).
Файл проекта XML может быть предоставлен Binary Valentine, который сканирует проект в соответствии с выбранными правилами и фильтрами. Проект может содержать один или несколько файлов или каталогов для сканирования (с дополнительными регулярными выражениями для фильтрации имен путей). Каждый путь или файл могут быть настроены с отдельным набором применяемых правил, уровнями предупреждения и категорий. Кроме того, проекты XML могут указывать параметры выходного формата и параметры выполнения (например, количество потоков и максимальный предел потребления памяти). В дополнение к выполнению проекта, бинарная валентина может быть вызвана путем предоставления всех параметров в командную строку.
Двоичный Валентин поддерживает несколько форматов вывода, чтобы облегчить интеграцию с другими системами. В дополнение к выводу терминала и простого текста, он поддерживает стандартный формат обмена результатами статического анализа (SARIF) 2.1.0, который является отраслевым стандартным форматом для вывода инструментов статического анализа.
В дополнение к командной строке, Binary Valentine предоставляет полностью изготовленный графический интерфейс пользователя, который позволяет выполнять анализ исполняемых файлов в режиме реального времени! Это также бинарный редактор проекта «Валентина», позволяющий создавать, редактировать, сохранять и загружать проекты без ручного написания XML.
Binary Valentine может быть построена для ряда платформ с набором компиляторов C ++ 20:
Windows 10/11 и Modern Linux (версия 5.1 или более новее с включенным io_uring ) поддерживаются на сегодняшний день.
Для получения подробной документации командной строки см. Веб-сайт: https://binary-valentine.com/docs/usage/command-line
General options:
-h [ --help ] Print options description
-c [ --config ] arg Path to external XML configuration file.
Can not be used with any other options.
-r [ --root-path ] arg Root path. This path will be used as a
root for all relative paths specified.
If absent, current directory will be
used as a root path.
--threads arg Analysis thread count. If absent,
hardware core number will be used.
--max-loaded-targets-size arg (=1G) Max loaded targets size. If specified,
the analyzer will preload as many
targets to analyze as possible until
their size in memory is less than the
value specified.Should have a numeric
value together with the suffix (B -
bytes, K - kilobytes, M - megabytes, G -
gigabytes), e.g. 2G for 2 gigabytes.
Can not be used together with
--max-concurrent-tasks.
Default is 1G.
--max-concurrent-tasks arg Max concurrent analysis tasks. If
specified, the analyzer will preload at
most max-concurrent-tasks targets for
analysis.
Can not be used together with
--max-loaded-targets-size.
Combined analysis options:
--do-combined-analysis arg (=1) Do combined analysis of all specified
targets. Default is true.
Targets options:
-t [ --target ] arg Target file or directory to analyze.
Required.
--recursive arg (=1) Scan and analyze the target directory
recursively. Default is true.
--include-regex arg Analyze only targets with full paths
which match the provided ECMAScript
regex.
--exclude-regex arg Analyze only targets with full paths
which do not match the provided
ECMAScript regex.
Report options:
--exclude-reports arg Exclude reports with the IDs listed. Can
not be used together with
--include-reports.
--include-reports arg Include only reports with the IDs
listed. Can not be used together with
--exclude-reports.
--list-reports List all supported reports with brief
descriptions.
--exclude-levels arg Exclude report levels (info, warning,
error, critical).
--exclude-categories arg Exclude report categories (system,
optimization, security, configuration,
format).
--with-progress Report verbose analysis progress
Output options:
--silent Do not output analysis results to
terminal.
-S [ --sarif ] arg Path to save the output report in SARIF
format.
-T [ --text ] arg Path to save the output report in
plaintext.