Junjie Zhang, Ph.D. (Advisor); Meilin Liu, Ph.D. (Committee Member); Michelle Cheatham, Ph.D. (Committee Member)
Master of Science (MS)
Modern software applications frequently make use of multithreading to utilize hardware resources better and promote application responsiveness. In these applications, threads share the program state, and synchronization mechanisms ensure proper ordering of accesses to the program state. When a developer fails to implement synchronization mechanisms, data races may occur. Finding data races in an automated way is an already challenging problem, but often impractical without source code or understanding how to execute the program under analysis. In this thesis, we propose a solution for finding data races on software binaries and present our prototype implementation BINRELAY. Our solution makes use of symbolic execution to maximize program coverage without requiring specific inputs to be passed to the binary. Currently, BINRELAY is limited to the detection of data races on global variables, but with future work, our system could detect data races on variables in other scopes.
Year Degree Awarded
Copyright 2020, all rights reserved. My ETD will be available under the "Fair Use" terms of copyright law.