Junjie Zhang, Ph.D. (Advisor); Phu Phung, Ph.D. (Committee Member); Krishnaprasad Thirunarayan, Ph.D. (Committee Member)
Master of Science (MS)
A key feature of software analysis is determining whether it is possible for a program to reach a certain state. Various methods have been devised to accomplish this including directed fuzzing and dynamic execution. In this thesis we present a reverse execution engine to validate states, the Complex Emulator. The Complex Emulator seeks to validate a program state by emulating it in reverse to discover if a contradiction exists. When unknown variables are found during execution, the emulator is designed to use constraint solving to compute their values. The Complex Emulator has been tested on small assembly programs and is able to detect contradictions in program states. If developed further the Complex Emulator could be used to validate program states on larger and more elaborate software.
Department or Program
Department of Computer Science and Engineering
Year Degree Awarded
Copyright 2022, all rights reserved. My ETD will be available under the "Fair Use" terms of copyright law.