Predicting the Success of x86-64 Binary Rewriters

Originally published on mapsworkshop.github.io.

Authors:

Akshay Sood, Keara Hill, Kimble D. Houck, Zachary Fry, Jonathan Dorn

Abstract:

Binary rewriters aim to modify the behavior of binary executables without having access to their source code. While there has been significant research on binary rewriting tools and techniques, assessing the effectiveness of binary rewriters remains a time consuming and challenging task that impedes wider adoption by the community. Differences in capabilities among rewriters, as well as varying but generally large computational costs, make it difficult for users to select rewriters appropriate to their specific workloads. In this paper, we propose a machine learning-based approach to predict the success of binary rewriters for x86-64 binaries, allowing users to quickly judge the likelihood of various binary transforms. We compare various learning algorithms for modeling a range of binary rewriting tools, explore different feature representations, and examine the performance of models trained on a diverse set of programming languages. Our findings provide insights into learning algorithms, feature representations, and the generalizability of models across programming languages for this task. We are able to model rewriting success with a high level of predictive performance, as measured by the area under the curve (AUC), enabling users to make much faster judgment of rewriter effectiveness on a given binary, at a fraction of the computational cost of actual rewriting. Our work also contributes to the understanding of the strengths and weaknesses of different binary rewriters and empowers tool developers and researchers to make informed decisions regarding the application of rewriting tools.

Contact Us

Get a personally guided tour of our solution offerings. 

Contact US