Skip to main content
Kent Academic Repository

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. (KAR id:58461)

PDF (MSc thesis) Other
Language: English


Download this file
(PDF/1MB)
[thumbnail of MSc thesis]
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: Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing
Depositing User: Richard Jones
Date Deposited: 08 Nov 2016 17:26 UTC
Last Modified: 26 Feb 2022 23:10 UTC
Resource URI: https://kar.kent.ac.uk/id/eprint/58461 (The current URI for this page, for reference purposes)

University of Kent Author Information

  • Depositors only (login required):

Total unique views for this document in KAR since July 2020. For more details click on the image.