DEVELOPMENT OF A REVERSE SOFTWARE ENGINEERING PROJECT
Cynthia Fry, Zachary Steudel · 2024
In CSI 2334, "Introduction to Computer Systems," we introduce a group project to the students whose purpose is to simulate a team project on the job.Group projects are used very frequently to provide a similar learning environment which capitalizes on the benefits of peer-to-peer instruction, or cooperative learning.In this group project, students are presented with a challenge.A piece of executable code has been found on an older server, and the student teams must determine what the code is designed to do; and, in particular, whether the code is benign or malicious in nature.In order to simulate this scenario a software system is developed and then hardened.The system developed is generally a game that has some malicious content, which is then obfuscated before the executable is presented to the student teams.The objective for the student teams is to research methods by which the binary file can be "read" without executing it, and to modify the behavior of the executable file, depending on the purpose of the code.This paper will introduce methods of software hardening and obfuscation; and will discuss the design of the project, the implementation of the design, code obfuscation techniques used, and which obfuscation techniques were used to produce the mystery executable presented to the class as their class project. 1 (Mourad, Debbabi, & Laverdière, 2006) 2 A sprint is generally defined as a short 2-4 week iteration in a team's software development process.Most agile development processes utilize sprints to develop software.