dynStruct: An automatic reverse engineering tool for structure recovery and memory use analysis

Mercier, Daniel (2017) dynStruct: An automatic reverse engineering tool for structure recovery and memory use analysis. Master of Science (MSc) thesis, University of Kent. (Full text available)

PDF (MSc thesis) - Other

Creative Commons Licence
This work is licensed under a Creative Commons Attribution 4.0 International License.
Download (1MB) Preview
[img]
Preview

Abstract

In computer security, reverse engineering is understanding how a program work. It can be used for multiple purposes, like malware analysis or security audit of a program. Reverse engineering is possible even without the source of the program. In this case, knowing what data structures are used by the program is a considerable help. But recovering these structures is di cult and time consuming. Also, at the time of writing, no tool doing this recovery has been publicly released. This paper introduces dynStruct, an open source structure recovery tool. dynStruct recovers structures in two steps. First a data gatherer executes the program and monitors it. The list of all memory accesses made by the program is written to a Json file. Afterwards a script analyzes this Json file to recover the structures. dynStruct also provides a powerful web interface. This interface, in addition to displaying e ciently the structures and raw data from the data gatherer, links the raw data and the recovered structures to allow a quick and powerful exploitation of all this information. The tests shows that dynStruct can analyze complex program like emacs or xterm. The tests also show that the recovered structures are similar to the original ones. This ensures dynStruct can provide quick and useful information to help reverse engineers in their task.

Item Type: Thesis (Master of Science (MSc))
Additional information: Source code available at https://github.com/ampotos/dynStruct
Uncontrolled keywords: Reverse engineering, security, data structures
Subjects: Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming, > QA76.76 Computer software
Divisions: Faculties > Sciences > School of Computing > Programming Languages and Systems Group
Depositing User: Richard Jones
Date Deposited: 08 Nov 2016 17:26 UTC
Last Modified: 07 Nov 2018 16:40 UTC
Resource URI: https://kar.kent.ac.uk/id/eprint/58461 (The current URI for this page, for reference purposes)
  • Depositors only (login required):

Downloads

Downloads per month over past year