The process of gathering information about a binary file, either with static or dynamic methods.

Binary analysis is opposed at code analysis, where the source code of the program, and only the source code, is used to perform the analysis. Binary analysis suppose that a binary form of the program is given and that the analysis is based on it (the source code might be used as well if available).

Usually, binary analysis is decomposed into two types: Static binary analysis (only the binary code is looked at and the program is never executed) and Dynamic binary analysis (the program is executed and the analysis is performed over the actual traces of the program).