6052CEM Demonstrate understanding of link between compiled software and the source code it is generated from

Reverse Engineering

Learning Outcome 1: Demonstrate understanding of link between compiled software and the source code it is generated from

Learning Outcome 2: Analyse communication, processing and network data to derive the underlying protocol

Learning Outcome 3: Make use of tools to examine the memory state of a running process with the aim of deriving the underlying algorithm

Learning Outcome 4: Examine and evaluate the differences in tools used for reverse engineering, patching and binary mangling

Assignment Brief

Assignment Task

For this report you are required to Reverse engineer a piece of software, and produce a report of your findings.

The report should describe the stages of the reversing process, showing the steps used to discover the underlying structure of the software.

The report should contain:

Discussion of the Reversing Process

You should describe the steps taken to reverse the software, describing the tools used and the reasoning behind the decisions made.
It would be appropriate to show a step by step walk through of the reversing process, discussing the analysis made at each stage.

Reconstruction of the Code

You will also need to present the underlying logic and functionality of the code.

Showing the functions within the program, and your analysis of their purpose and logic.

This should include:

  • Flow chart of the overall program logic
  • Pseudocode / Description of Function Logic
  • Dissuasion of any Passwords / Passphrases, and process used to generate them
  • Discussion of any other functionality (i.e. network code)