1. A software vulnerabilities detection system comprising: a memory device storing computer-readable instructions; a microprocessor, coupled to the memory device for executing instructions thereon, wherein the microprocessor is configured to: a) receive compiled code and source code that resulted in said compiled code; b) create an instruction model for each instruction of said compiled code comprising instruction location, debug information, instruction type and operands of each said instruction; c) create a control flow graph for each said instruction comprising all potential control flow paths for each said instruction; d) create a data flow model comprising recorded flow of unsafe data as observed during the execution of said compiled code, said data flow model utilizing a precomputation of data flow inputs and outputs associated with a basic block of said compiled code and said source code, wherein said precomputation results in an identification of at least one data location referenced by an instruction of said basic block, said at least one data location selected from the group consisting of a register, a local variable, a pointer reference and a stack entry; e) analyze said instruction model, said control flow graph and said data flow model to obtain a security finding for each said instruction that calls an unsafe function on said unsafe data; and f) generate a security report comprising each said security finding, said security report comprising said debug information and said source code information.