1. A method to determine valid input sequences for an unknown binary program, the method comprising: obtaining a plurality of input sequences of unknown validity for an unknown binary program, each of the input sequences including two or more different inputs, the inputs for the input sequences determined as valid inputs for the unknown binary program, the unknown binary program being unknown based on source code of the unknown binary program being unavailable; executing an instrumented version of the unknown binary program separately for each input sequence, each execution of the instrumented version of the unknown binary program using one of the input sequences as inputs to the instrumented version of the unknown binary program; for each execution of the instrumented version of the unknown binary program, generating a set of execution traces by recording execution traces generated by the execution of the instrumented version of the unknown binary program; comparing the sets of execution traces with each other; and determining which of the input sequences the unknown binary program accepts as valid based on the comparison of the sets of execution traces, wherein a valid input sequence includes a first input that is a precondition for a subsequent second input in the valid input sequence.