Demo Data from EDBT 2026 / reviewers in the wild / expert
Thomas Rupprecht
dblp:183/0190
· DBLP profile ↗
3ranked-venue papers
2as first author
0since 2021 · last 2017
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 2 · 1 first-authorSecurity and privacy · 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
3 papers |
Program analysis · 70% Software maintenance and evolution · 21% Programming languages and type systems · 9% | |
| Network and information security
1 paper |
Systems and software security · 100% |
Topics — the 7 heaviest of 8, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis › heap analysis
data structure identification |
0.5 | 2 | 2017 | DSIbin: identifying dynamic data structures in C/C++ binaries · ASE 2017 DSI: an evidence-based approach to identify dynamic data structures in C programs · ISSTA 2016 |
Program analysis
binary analysis |
0.3 | 1 | 2017 | DSIbin: identifying dynamic data structures in C/C++ binaries · ASE 2017 |
Software maintenance and evolution
reverse engineering |
0.3 | 1 | 2017 | DSIbin: identifying dynamic data structures in C/C++ binaries · ASE 2017 |
Systems and software security › binary analysis
binary type recovery |
0.2 | 1 | 2016 | POSTER: Identifying Dynamic Data Structures in Malware · CCS 2016 |
Program analysis
dynamic analysis |
0.2 | 1 | 2016 | DSI: an evidence-based approach to identify dynamic data structures in C programs · ISSTA 2016 |
Program analysis
static analysis |
0.2 | 2 | 2017 | DSIbin: identifying dynamic data structures in C/C++ binaries · ASE 2017 POSTER: Identifying Dynamic Data Structures in Malware · CCS 2016 |
Programming languages and type systems
type inference |
0.2 | 2 | 2017 | DSIbin: identifying dynamic data structures in C/C++ binaries · ASE 2017 POSTER: Identifying Dynamic Data Structures in Malware · CCS 2016 |
Methods — techniques the papers use, named apart from their topics
memory abstraction · 0.8machine learning · 0.5type merging · 0.3speculative nested-struct detection · 0.3evidence reinforcement · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2017 | DSIbin: identifying dynamic data structures in C/C++ binariesabstractReverse engineering binary code is notoriously difficult and, especially, understanding a binary's dynamic data structures. Existing data structure analyzers are limited wrt. program comprehension: they do not detect complex structures such as skip lists, or lists running through nodes of different types such as in the Linux kernel's cyclic doubly-linked list. They also do not reveal complex parent-child relationships between structures. The tool DSI remedies these shortcomings but requires source code, where type information on heap nodes is available. We present DSIbin, a combination of DSI and the type excavator Howard for the inspection of C/C++ binaries. While a naive combination already improves upon related work, its precision is limited because Howard's inferred types are often too coarse. To address this we auto-generate candidates of refined types based on speculative nested-struct detection and type merging; the plausibility of these hypotheses is then validated by DSI. We demonstrate via benchmarking that DSIbin detects data structures with high precision. Thomas Rupprecht, Xi Chen 0038, David H. White 0001, Jan H. Boockmann, Gerald Lüttgen, Herbert Bos |
ASE | 1 |
| 2016 | POSTER: Identifying Dynamic Data Structures in MalwareabstractAs the complexity of malware grows, so does the necessity of employing program structuring mechanisms during development. While control flow structuring is often obfuscated, the dynamic data structures employed by the program are typically untouched. We report on work in progress that exploits this weakness to identify dynamic data structures present in malware samples for the purposes of aiding reverse engineering and constructing malware signatures, which may be employed for malware classification. Using a prototype implementation, which combines the type recovery tool Howard and the identification tool Data Structure Investigator (DSI), we analyze data structures in Carberp and AgoBot malware. Identifying their data structures illustrates a challenging problem. To tackle this, we propose a new type recovery for binaries based on machine learning, which uses Howard's types to guide the search and DSI's memory abstraction for hypothesis evaluation. Thomas Rupprecht, Xi Chen 0038, David H. White 0001, Jan Tobias Mühlberg, Herbert Bos, Gerald Lüttgen |
CCS | 1 |
| 2016 | DSI: an evidence-based approach to identify dynamic data structures in C programsabstractComprehension of C programs containing pointer-based dynamic data structures can be a challenging task. To tackle this challenge we present Data Structure Investigator (DSI), a new dynamic analysis for automated data structure identification that targets C source code. Our technique first applies a novel abstraction on the evolving memory structures observed at runtime to discover data structure building blocks. By analyzing the interconnections between building blocks we are then able to identify, e.g., binary trees, doubly-linked lists, skip lists, and relationships between these such as nesting. Since the true shape of a data structure may be temporarily obscured by manipulation operations, we ensure robustness by first discovering and then reinforcing evidence for data structure observations. We show the utility of our DSI prototype implementation by applying it to both synthetic and real world examples. DSI outputs summarizations of the identified data structures, which will benefit software developers when maintaining (legacy) code and inform other applications such as memory visualization and program verification. David H. White 0001, Thomas Rupprecht, Gerald Lüttgen |
ISSTA | 2 |