1. A computer-implemented method of detecting malware, the method comprising: executing a sample program in a dynamic analysis system; during runtime of the sample program in the dynamic analysis system, identifying a conditional statement of the sample program that matches a conditional statement indicated in a semantic pattern of a plurality of semantic patterns, wherein the conditional statement comprises a conditional jump instruction, wherein the execution path of the sample program is changed when an expected value of a conditional variable of the conditional jump instruction as indicated in the semantic pattern is not the same as an actual evaluated value of the conditional variable; setting a breakpoint at the conditional statement; when the breakpoint is hit, comparing an expected value of the conditional statement as indicated in the semantic pattern to an actual evaluated value of the conditional statement; changing execution path of the sample program based on a result of the comparison of the expected and actual evaluated values of the conditional statement, wherein changing the execution path of the sample program comprises inversing a Boolean value of the conditional variable; and monitoring a behavior of the sample program for malware during runtime of the sample program in the dynamic analysis system.