An Observational Investigation of Reverse Engineers' Processes

12/01/2019
by   Daniel Votipka, et al.
0

Reverse engineering is a complex process essential to software-security tasks such as vulnerability discovery and malware analysis. Significant research and engineering effort has gone into developing tools to support reverse engineers. However, little work has been done to understand the way reverse engineers think when analyzing programs, leaving tool developers to make interface design decisions based only on intuition. This paper takes a first step toward a better understanding of reverse engineers' processes, with the goal of producing insights for improving interaction design for reverse engineering tools. We present the results of a semi-structured, observational interview study of reverse engineers (N=16). Each observation investigated the questions reverse engineers ask as they probe a program, how they answer these questions, and the decisions they make throughout the reverse engineering process. From the interview responses, we distill a model of the reverse engineering process, divided into three phases: overview, sub-component scanning, and focused experimentation. Each analysis phase's results feed the next as reverse engineers' mental representations become more concrete. We find that reverse engineers typically use static methods in the first two phases, but dynamic methods in the final phase, with experience playing large, but varying, roles in each phase. experience varies between phases. Based on these results, we provide five interaction design guidelines for reverse engineering tools.

READ FULL TEXT
POST COMMENT

Comments

There are no comments yet.

Authors

page 8

01/12/2021

Declarative Demand-Driven Reverse Engineering

Binary reverse engineering is a challenging task because it often necess...
05/31/2021

An Exploratory Study of Hardware Reverse Engineering Technical and Cognitive Processes

Understanding the internals of Integrated Circuits (ICs), referred to as...
10/13/2020

It's the Journey Not the Destination: Building Genetic Algorithms Practitioners Can Trust

Genetic algorithms have been developed for decades by researchers in aca...
03/16/2019

A Principal-Agent Model of Systems Engineering Processes with Application to Satellite Design

We present a principal-agent model of a one-shot, shallow, systems engin...
10/01/2019

Towards Cognitive Obfuscation: Impeding Hardware Reverse Engineering Based on Psychological Insights

In contrast to software reverse engineering, there are hardly any tools ...
11/22/2020

Modular Moose: A new generation software reverse engineering environment

Advanced reverse engineering tools are required to cope with the complex...
09/05/2020

Reverse-engineering Bar Charts Using Neural Networks

Reverse-engineering bar charts extracts textual and numeric information ...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.