1. A method for analyzing executable software code using a computer comprising a processor and a memory, the method comprising: processing the executable software code to generate an optimized, exhaustive data flow model including parsing the executable software code to facilitate identification of data flows for inclusion in the exhaustive data flow model; processing the executable software code to generate an optimized, exhaustive control flow model; and storing, in the memory, an intermediate representation of the executable software code that provides a complete model of the executable software code based on the optimized data flow model and the optimized control flow model, thereby facilitating analysis of the executable software code according to comparison of the intermediate representation to reference models.
12. The computer-implemented method of claim 1 wherein processing the executable software code to generate an exhaustive control flow model of the executable software code comprises: generating control flow signatures for the executable software code; and comparing the generated control flow signatures to one or more predefined control flow signatures, each representing a known control flow model.