Publication Date

Fall 12-2010

Degree Type

Master's Project

Degree Name

Master of Science (MS)


Computer Science

First Advisor

Mark Stamp

Second Advisor

Robert Chun

Third Advisor

Xiuduan Fang


Today, there are many hackers trying to break software using reverse engineering tech- niques. To better protect software, we need to understand reverse engineering methods. This project presents a tool that automatically analyzes executable code in a manner simi- lar to the way an attack might analyze code.

Using reverse engineering techniques, executables can be disassembled to yield an as- sembly code representation of the program. Assembly code is much more human reada- ble than binary code. With assembly code, an attacker can attempt to modify the program to do something other than what was intended by the developer.

The tool that we have developed allows the user to specify any two points in the assembly code, and then attempts to find a valid execution path between the two speci- fied points. That is, the goal of this project is to develop a tool that will automatically find a path between two given points in the assembly code, say, point A and point B, and then modify the executable so that if point A is reached, then point B will be reached later.