Abstract
Reverse 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.
| Original language | English |
|---|---|
| Title of host publication | 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE) |
| Subtitle of host publication | [Proceedings] |
| Publisher | Institute of Electrical and Electronics Engineers Inc. |
| Pages | 331-341 |
| Number of pages | 11 |
| ISBN (Electronic) | 9781538626849 |
| ISBN (Print) | 9781538639764 |
| DOIs | |
| Publication status | Published - 2017 |
| Event | 32nd IEEE/ACM International Conference on Automated Software Engineering, ASE 2017 - Urbana-Champaign, United States Duration: 30 Oct 2017 → 3 Nov 2017 |
Conference
| Conference | 32nd IEEE/ACM International Conference on Automated Software Engineering, ASE 2017 |
|---|---|
| Country/Territory | United States |
| City | Urbana-Champaign |
| Period | 30/10/17 → 3/11/17 |
Funding
This work was supported by the German Research Foundation through DFG grant LU 1748/4-1, the Netherlands Organisation for Scientific Research through the grant NWO 639.023.309 VICI Dowsing, and the Cisco Grant Program (CG #595086). We also thank the anonymous reviewers for their valuable comments and suggestions
| Funders | Funder number |
|---|---|
| California Department of Fish and Game | |
| Deutsche Forschungsgemeinschaft | LU 1748/4-1 |
| Nederlandse Organisatie voor Wetenschappelijk Onderzoek | CG #595086, NWO 639.023.309 VICI Dowsing |
Keywords
- Data structure identification
- dynamic data structures
- pointer programs
- reverse engineering
- type recovery
Fingerprint
Dive into the research topics of 'DSIbin: Identifying dynamic data structures in C/C++ binaries'. Together they form a unique fingerprint.Cite this
- APA
- Author
- BIBTEX
- Harvard
- Standard
- RIS
- Vancouver