Publication Date

2020

Document Type

Thesis

Committee Members

Junjie Zhang, Ph.D. (Advisor); Meilin Liu, Ph.D. (Committee Member); Michelle Cheatham, Ph.D. (Committee Member)

Degree Name

Master of Science (MS)

Abstract

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.

Page Count

64

Year Degree Awarded

2020


Share

COinS