The Binary Analysis Tool can help to discover what components were used to create compiled code. It uses the same type of approach that gpl-violations.org applies to discover license issues in consumer electronics. This is called 'compliance engineering' and has been documented in the GPL compliance engineering guide released by Loohuis Consulting.
Technically speaking, the Binary Analysis Tool tries to detect if object code (or parts of it) resulted from the compilation of specified source code (or parts of it). At the moment the tool supports:
The Binary Analysis Tool attempts to read binary code in firmware formats and compare it with source code. This can compliment or replace manual analysis techniques traditionally used to audit code.
It uses symbol table comparisons and string table comparisons for its analysis, and does not undertake any reverse engineering. While table comparisons are not a particularly sophisticated forensic technique, they have proven extremely effective in discovering real-world issues.
One advanced feature of the tool is users can build a customized knowledgebase. This can contain information about products and/or code like upstream suppliers, chip-sets, offsets, file systems and application strings. The tool can reads the knowledgebase, open compiled code, and checks if the specified data is included.
Naturally the tool does not replace a dedicated compliance engineer and it requires some degree of integration into existing workflows to be useful. However, it has the potential to reduce costs and increase productivity around due diligence related to FOSS.
There are two key technical limitations to the Binary Analysis Tool:
You can learn more about what the tool does by reading the documentation.
