4.1 The builder checker.


annocheck
  --builtby
  --enable-builtby
  [--all]
  [--tool=name]
  [--nottool=name]
  [--no-version-info]
  [--no-lang-info]
  [--options-info]
  file...

The builtby tool is disabled by default, but it can be enabled by the command line option --enable-builtby or just --builtby. The tool checks the specified files to see if any information is stored about how the file was built and the source languages involved.

Since the hardening checker is enabled by default it may also be useful to add the --disable-hardened option to the command line, although this is not needed if the --builtby option is used.

The tool supports a few command line options to customise its behaviour:

--all

Report all builder identification strings. The tool has several different heuristics for determining the builder. By default it will report the information return by the first successful heuristic. If the --all option is enabled then all successful results will be returned. This will probably result in the display of multiple instances of the same information.

--tool=name

This option can be used to restrict the output to only those files which were built by a specific tool. This can be useful when scanning a directory full of files searching for those built by a particular compiler. This option can be used multiple times in order to allow a selection of builders to be reported.

--nottool=NAME

This option can be used to restrict the output to only those files which were not built by a specific tool. This can be useful when scanning a directory full of files searching for those that were not built by a particular compiler. This option can be used multiple times in order to allow multiple builders to be hidden.

--lang=name

This option can be used to restrict the output to only those files which were written in a specific high level language. Note - not all binaries include information about the source code language(s), so this option may not be completely effective. This option can be used multiple times in order to allow a broader selection of languages to be reported.

--notlang=NAME

This option can be used to restrict the output to only those files which were not written in a specific high level language. Note - not all binaries include information about the source code language(s), so this option may not be completely effective. This option can be used multiple times in order to allow a broader selection of languages to be hidden.

--no-version-info
--lang-info

By default builtby will report the version information for the builders that it detects. Enabling the --no-version-info option will prevent this information from being displayed.

If necessary the feature can be re-enabled by the --version-info option.

--no-lang-info
--lang-info

By default builtby will report the high level language(s) of the sources used to build the program - if they have been recorded. Enabling the --no-lang-info option will prevent this information from being displayed.

If necessary the feature can be re-enabled by the --lang-info option.

--no-tool-info
--no-builder-info
--tool-info

By default builtby will report the tool(s) used to build the program. Enabling the --no-build-info option will prevent this information from being displayed, meaning that only the high level language information will shown. Enabling this option and the --no-lang-info option effectively renders built-by redundant.

Note --no-builder-info is treated as a synonym for --no-tool-info.

If necessary the feature can be re-enabled by the --tool-info option.

--options-info
--no-options-info

By default builtby will not report the command line options provided to the tool(s) used to built the target binary. Adding the --options-info option will enable the display of this information, if it is stored in the binary (or its debug info).

If necessary the feature can be disabled by the --no-options-info option.