1. A method of securing a target system by automatically detecting vulnerabilities in the target system by identifying functional attributes that change the intended operation of a compiled binary extracted from the target system, the method comprising: generating a first intermediate representation of each function from the compiled binary, the first intermediate representation being a machine independent representation; identifying metadata for each function of the compiled binary using the first intermediate representation of the binary; emitting a function prototype corresponding to the identified metadata for each function of the compiled binary; translating the first intermediate representation of the compiled binary into a second intermediate representation of the compiled binary; and applying at least one analyzer on the second intermediate representation of the compiled binary to identify at least one functional attribute that changes intended operation of the compiled binary.