Options
DSI: Automated detection of dynamic data structures in C programs and binary code
Rupprecht, Thomas; Boockmann, Jan; White, David; u. a. (2017): DSI: Automated detection of dynamic data structures in C programs and binary code, in: Wolfram Amme und Thomas S. Heinze (Hrsg.), Programmiersprachen und Grundlagen der Programmierung : 19. Kolloquium, KPS 2017 ; Weimar, 25.–27. September 2017 ; Tagungsband, Weimar: Friedrich-Schiller-Universität Jena, S. 134–147.
Faculty/Chair:
Author:
Editor:
Title of the compilation:
Programmiersprachen und Grundlagen der Programmierung : 19. Kolloquium, KPS 2017 ; Weimar, 25.–27. September 2017 ; Tagungsband
Publisher Information:
Year of publication:
2017
Pages:
Series ; Volume:
Jenaer Schriften zur Mathematik und Informatik ; Math/Inf/ 02 /2017
Language:
English
Abstract:
Program comprehension is an important task for software engineers who maintain legacy code, as well as for reverse engineers who analyse binary executables such as malware. Detecting dynamic, i.e., pointer-based data structures is a particular challenge due to the complex usage of pointers found in real world software.
This paper presents the key results of the DFG-funded project "Learning Data Structure Behaviour from Executions of Pointer Programs" (DSI), in which dynamic analysis techniques have been developed to identify dynamic data structures in C programs and x86 binary code. DSI's analysis utilizes a novel memory abstraction that allows for a compact description of pointer-based data structures such as linked lists and binary trees, and their interconnections such as parent-child nesting. On top of this abstraction, an evidence-collecting approach calculates a natural language description of the observed data structure with the help of a systematic taxonomy. The inferred data structure information is not only helpful for program comprehension but also for other use cases including software verification and software visualization.
This paper presents the key results of the DFG-funded project "Learning Data Structure Behaviour from Executions of Pointer Programs" (DSI), in which dynamic analysis techniques have been developed to identify dynamic data structures in C programs and x86 binary code. DSI's analysis utilizes a novel memory abstraction that allows for a compact description of pointer-based data structures such as linked lists and binary trees, and their interconnections such as parent-child nesting. On top of this abstraction, an evidence-collecting approach calculates a natural language description of the observed data structure with the help of a systematic taxonomy. The inferred data structure information is not only helpful for program comprehension but also for other use cases including software verification and software visualization.
Type:
Conferenceobject
Activation date:
November 26, 2018
Permalink
https://fis.uni-bamberg.de/handle/uniba/44806