BinComp: A stratified approach to compiler provenance Attribution ?
Compiler provenance encompasses numerous pieces of information, such as the compiler family, compiler version, optimization level, and compiler-related functions. The extraction of such information is imperative for various binary analysis applications, such as function fingerprinting, clone detection, and authorship attribution. It is thus important to develop an efficient and automated approach for extracting compiler provenance. In this study, we present BinComp B i n C o m p , a practical approach which, analyzes the syntax, structure, and semantics of disassembled functions to extract compiler provenance. BinComp B i n C o m p has a stratified architecture with three layers. The first layer applies a supervised compilation process to a set of known programs to model the default code transformation of compilers. The second layer employs an intersection process that disassembles functions across compiled binaries to extract statistical features (e.g., numerical values) from common compiler/linker-inserted functions. This layer labels the compiler-related functions. The third layer extracts semantic features from the labeled compiler-related functions to identify the compiler version and the optimization level. Our experimental results demonstrate that BinComp B i n C o m p is efficient in terms of both computational resources and time.
compiler provenance reverse engineering binary program analysis digital forensics programming analysis