Demonstrate your mastery of the following competencies:
Utilize fundamental reverse engineering technologies and practices
Apply the fundamentals of assembly language in reverse engineering tasks
Scenario
SNHU Investments is a large investment company that offers brokerage and retirement services. They have been in business since the early 1980s. Recently, they have been trying to move their legacy code into a cloud-based application. This resulted in the company looking to hire an additional software engineer. You applied for the position and were selected to participate in a proficiency test as part of the interview process. In the proficiency test, you must demonstrate your ability to reverse engineer code.
For the purposes of this proficiency test, you will be given an existing client management application that the company uses. You will convert the application into assembly code, explain the code, and convert it into C++ to create a working program.
Directions
For this project, you will take the existing binary file (O file) for the client management application, convert it to assembly code, convert the assembly code to C++ (CPP file) with an added output statement, and create a new binary file.
Convert the binary file (O file) into assembly code.
Decompile the binary file found in the Software Reverse Engineering Playground in the Project One Files folder in Codio.
Explain the functionality of the blocks of assembly code.
Use the Project One Proficiency Test Template, located in the Supporting Materials section, to complete this step.
Convert the assembly code into C++ code (CPP file).
Compile the C++ code in the Eclipse IDE.
Add an output statement to the beginning of the C++ code (CPP file).
For example, you could add a “Created by (name)” statement for when the program opens, or a statement of your choice.