Affiliation:
1. Technion, Israel Institute of Technology, Haifa, Israel
2. Tel Aviv University, Tel Aviv, Israel
Abstract
We address a fundamental problem in reverse engineering of object-oriented code: the reconstruction of a program's class hierarchy from its
stripped
binary. Existing approaches rely heavily on
structural
information that is not always available, e.g., calls to parent constructors. As a result, these approaches often leave gaps in the hierarchies they construct, or fail to construct them altogether. Our main insight is that
behavioral
information can be used to infer subclass/superclass relations, supplementing any missing structural information. Thus, we propose the
first statistical approach
for static reconstruction of class hierarchies based on
behavioral similarity.
We capture the behavior of each type using a statistical language model (SLM), define a metric for
pairwise similarity
between types based on the
Kullback-Leibler divergence
between their SLMs, and lift it to determine the most likely class hierarchy. We implemented our approach in a tool called ROCK and used it to automatically reconstruct the class hierarchies of several real-world stripped C++ binaries. Our results demonstrate that ROCK obtained
significantly
more accurate class hierarchies than those obtained using structural analysis alone.
Funder
European Research Council
Israel Science Foundation
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
1 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. BETAC: Bidirectional Encoder Transformer for Assembly Code Function Name Recovery;2024 20th International Conference on the Design of Reliable Communication Networks (DRCN);2024-05-06