2015
DOI: 10.1007/s10664-015-9363-y
|View full text |Cite
|
Sign up to set email alerts
|

Scalable data structure detection and classification for C/C++ binaries

Abstract: Many existing techniques for reversing data structures in C/C++ binaries are limited to low-level programming constructs, such as individual variables or structs. Unfortunately, without detailed information about a program's pointer structures, forensics and reverse engineering are exceedingly hard. To fill this gap, we propose MemPick, a tool that detects and classifies high-level data structures used in stripped binaries. By analyzing how links between memory objects evolve throughout the program execution, … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
5
0
2

Year Published

2016
2016
2020
2020

Publication Types

Select...
4
3
1

Relationship

1
7

Authors

Journals

citations
Cited by 11 publications
(7 citation statements)
references
References 27 publications
0
5
0
2
Order By: Relevance
“…Трансформации, устраняющие указатели -новое направление исследований. Наиболее близкими здесь являются работы по анализу видов структур данных (shape analysis) [10,12,13] и обратной трансляции [14,16] на язык более высокого уровня. Причем в этих работах не ставится задача устранения указателей.…”
Section: обзор работunclassified
“…Трансформации, устраняющие указатели -новое направление исследований. Наиболее близкими здесь являются работы по анализу видов структур данных (shape analysis) [10,12,13] и обратной трансляции [14,16] на язык более высокого уровня. Причем в этих работах не ставится задача устранения указателей.…”
Section: обзор работunclassified
“…DSI provides two desirable features that will help us to advance the state-of-theart in identifying dynamic data structures from malware. The first is DSI's rich heap abstraction that, in contrast to ARTISTE [3], DDT [7], HeapDbg [11], and MemPick [6], permits the identification of many complex data structure implementation techniques. These range from the generic list implementations employed by the Linux kernel, to highly optimized data structures, and to those created via custom memory allocators.…”
Section: Ccs'16mentioning
confidence: 99%
“…Secondly, DSI identifies data structures by accumulating evidence, a process which is resilient against the transient corrupted shapes that arise due to manipulation operations, which we term degenerate shapes. In contrast, other approaches [6,7] try to exclude degenerate shapes from the analysis, which may be difficult if wellstructured interfaces are required [7] and these are obfuscated. Additionally, there is typically limited support for nested data structures, whereas DSI's key features enable the robust identification of arbitrarily deep nesting.…”
Section: Ccs'16mentioning
confidence: 99%
“…Mandating programmers to store data references in collections needs that multiple memory blocks are allocated per data element: one to store the data element and another one to store the collection's node. There were some drawbacks to this traditional method [5], [6]: a) E-mail: dmp@znu.ac.ir b) E-mail: mahjur@mut.ac.ir (Corresponding author) DOI: 10.1587/transinf.2018EDP7105 tine should be called several times to allocate the space of a data element and it's node. Such extra calls reduce the performance of collections.…”
Section: Introductionmentioning
confidence: 99%