Investigating Collaboration in Software Reverse Engineering
[Technical Report, Master's Thesis]
AIR FORCE INSTITUTE OF TECHNOLOGY WRIGHT-PATTERSON AFB OH
Pagination or Media Count:
Reverse engineering RE is a rigorous process of exploration and analysis to support software design recovery and exploit development. The process is often conducted in teams to divide the workload and take full advantage of engineers individual expertise and strengths. Collaboration in RE requires versatile and reliable tools that can match the environments unpredictable and fluid nature. While studies on collaborative software development have indicated common best practices and implementations, similar standards have not been explored in reverse engineering. This research conducts semi-structured interviews with reverse engineering experts to understand their needs and solutions while working in a team. The results describe an array of major challenges that are each addressed by employing tools such as issue tracking software, shared workspaces, and version control systems. Such tools support documentation and continuity, while mitigating redundancies in concurrent work. Though the value of these tools is acknowledged by the experts, seamless workflow integration remains a challenge. The identification of current needs and practices offers additional opportunities for collaborative tool developers to aid reverse engineers.
- Operations Research
- Administration and Management
- Computer Programming and Software