1. A computer-implemented method for automatically discovering vulnerabilities in computer software, and automatically generating exploits of the vulnerabilities using only a binary executable, the method comprising the steps of: creating a set of inputs using a Monte Carlo simulation based on a template that adheres to constraints placed upon the set of inputs, said template defines an acceptable range of values and positions of data for the set of inputs, providing the set of inputs to a computer system to cause the computer system entering a vulnerability state, wherein the step of the computer system executing a victim software to enter the vulnerability state comprises at least one input of the set of inputs cause the computer system to execute unauthorized instructions, wherein at least one input is stored within at least one of the computer memory contents or CPU register; analyzing the CPU register and computer memory contents during normal operation, wherein normal operation is operation of the computer system prior to the vulnerability state; analyzing the CPU register and computer memory contents after the vulnerability state, wherein the at least one input is identified; discovering, by the computer system consisting of a plurality of processors or processor cores, the set of inputs that causes the computer that executes a victim software to enter the vulnerability state based on the analyzing, wherein one or more algorithms identifies at least one input from the set of inputs that expose a vulnerability; generating, by the computer system, exploits of the vulnerability, in response to a vulnerability state being identified, said generating comprises creation of malicious code which executes upon the computer system in the vulnerable state, and: implementing a feedback loop to use the initial set of inputs to create another set of inputs that are exploits of the vulnerability to cause the execution of malicious code which executes upon the computer system in the vulnerable state and transitions the computer system to the exploited state; translating binary machine code to a form that carries logic then executing that logic to create exploits of the vulnerability that transitions the computer system from the vulnerable state to the exploited state; determining through the use of symbolic execution a set of inputs to cause the computer system to transition from the vulnerable state to the exploited state by moving program counter to point of control caused by vulnerability to embedded malicious op-code; determining a set of input that allows execution of the embedded malicious opcode through symbolic execution to transition computer system from a vulnerable state to an exploited state through the detection of input data in a CPU register or memory location; and providing a probability value with a confidence interval for the set of inputs.