• DocumentCode
    647194
  • Title

    MemPick: High-level data structure detection in C/C++ binaries

  • Author

    Haller, Istvan ; Slowinska, Asia ; Bos, Herbert

  • Author_Institution
    Vrije Univ. Amsterdam, Amsterdam, Netherlands
  • fYear
    2013
  • fDate
    14-17 Oct. 2013
  • Firstpage
    32
  • Lastpage
    41
  • 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, it distinguishes between many commonly used data structures, such as singly- or doubly-linked lists, many types of trees (e.g., AVL, red-black trees, B-trees), and graphs. We evaluate the technique on 10 real world applications and 16 popular libraries. The results show that MemPick can identify the data structures with high accuracy.
  • Keywords
    C++ language; data structures; pattern classification; C-C++ binaries; MemPick; high-level data structure classification; high-level data structure detection; low-level programming constructs; memory objects; stripped binaries; Binary trees; Libraries; Resource management; Reverse engineering; Shape; Vegetation;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Reverse Engineering (WCRE), 2013 20th Working Conference on
  • Conference_Location
    Koblenz
  • Type

    conf

  • DOI
    10.1109/WCRE.2013.6671278
  • Filename
    6671278