Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Omer Katz

dblp:173/9439 · DBLP profile ↗
← Back
2ranked-venue papers
2as first author
0since 2021 · last 2018
0009-0000-7291-0829ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 2 · 2 first-authorSystems, architecture and hardware · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
2 papers
Program analysis · 57% Software maintenance and evolution · 42%
Network and information security
1 paper
Systems and software security · 100%

Topics — the 6 heaviest of 7, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program analysis
binary analysis
0.312018
Statistical Reconstruction of Class Hierarchies in Binaries · ASPLOS 2018
Software maintenance and evolution
reverse engineering
0.312018
Statistical Reconstruction of Class Hierarchies in Binaries · ASPLOS 2018
Systems and software security › reverse engineering
binary reverse engineering
0.212016
Estimating types in binaries using predictive modeling · POPL 2016
Systems and software security
vulnerability discovery
0.212016
Estimating types in binaries using predictive modeling · POPL 2016
Program analysis
static analysis
0.212016
Estimating types in binaries using predictive modeling · POPL 2016
Systems and software security
exploitation
0.112016
Estimating types in binaries using predictive modeling · POPL 2016

Methods — techniques the papers use, named apart from their topics

statistical language model · 0.8predictive modeling · 0.5object tracelets · 0.5kullback-leibler divergence · 0.3behavioral similarity · 0.3
YearPublicationVenuePosition
2018 Statistical Reconstruction of Class Hierarchies in Binaries
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.
Omer Katz, Noam Rinetzky, Eran Yahav
ASPLOS1
2016 Estimating types in binaries using predictive modeling
abstract
Reverse engineering is an important tool in mitigating vulnerabilities in binaries. As a lot of software is developed in object-oriented languages, reverse engineering of object-oriented code is of critical importance. One of the major hurdles in reverse engineering binaries compiled from object-oriented code is the use of dynamic dispatch. In the absence of debug information, any dynamic dispatch may seem to jump to many possible targets, posing a significant challenge to a reverse engineer trying to track the program flow. We present a novel technique that allows us to statically determine the likely targets of virtual function calls. Our technique uses object tracelets – statically constructed sequences of operations performed on an object – to capture potential runtime behaviors of the object. Our analysis automatically pre-labels some of the object tracelets by relying on instances where the type of an object is known. The resulting type-labeled tracelets are then used to train a statistical language model (SLM) for each type.We then use the resulting ensemble of SLMs over unlabeled tracelets to generate a ranking of their most likely types, from which we deduce the likely targets of dynamic dispatches.We have implemented our technique and evaluated it over real-world C++ binaries. Our evaluation shows that when there are multiple alternative targets, our approach can drastically reduce the number of targets that have to be considered by a reverse engineer.
Omer Katz, Ran El-Yaniv, Eran Yahav
POPL1