
开源,免费使用可执行文件静态分析仪。检测一系列各种问题,这些问题通常无法触及其他工具(例如静态代码分析)。
网站:https://binary-valentine.com
文档:https://binary-valentine.com/docs

System32文件夹。 二进制Valentine当前仅支持便携式可执行格式(在Windows,EFI,X-Box上广泛使用)。对于这种格式,它检测到各种问题:
对于便携式可执行文件,目前提供了180多个规则。大多数规则都是可执行的,但是其中一些规则确实结合了扫描(例如,版本INFO,可否定的一致性检查规则)。
XML项目文件可以提供给二进制情人节,该文件将根据选定的规则和过滤器扫描项目。一个项目可以包含一个或多个文件或目录来扫描(具有可选的正则表达式以滤波路径名)。每个路径或文件都可以使用一组应用的规则,警告级别和类别进行配置。除此之外,XML项目还可以指定输出格式和执行选项(例如线程计数和最大内存消耗限制)。除了基于项目的执行外,还可以通过向其命令行提供所有参数来调用二进制情人。
二进制情人节支持几种输出格式,以简化与其他系统的集成。除终端和纯文本输出外,它还支持静态分析结果互换格式(SARIF)2.1.0,这是静态分析工具输出的行业标准格式。
除命令行外,二进制Valentine还提供了完整的图形用户界面,该界面允许实时执行可执行文件分析!它也是二进制情人节项目编辑器,允许在不手动编写XML的情况下创建,编辑,保存和加载项目。
可以为带有一组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.