Automatic model learning and its applications in malware detection - Hao, Xiao (2017)
A behavior model of a program captures the correct ways of invoking its Application Programming Interfaces (APIs). For instance, one way for a Java programmer to read a text file is to open the file and then read the contents of the file and finally close the file after reading. Automatic learning of behavior models of programs can benefit many applications such as software verification by generating the models of the target program for verification, software testing by generating models of standard libraries for test generation, security analysis by generating the attack models of malicious software (malware) for malware detection, and software maintenance by generating models of legacy programs for code comprehension.