This chapter provides a review of reverse engineering of software for complex embedded systems. Our review is motivated by the observation that the reach and importance of embedded systems are growing along with their complexity. Thus, software reverse engineering can be expected to play a more prominent role in the evolution of large industrial embedded systems in the future. The chapter focuses on reverse engineering tools and techniques that are particularly suitable for complex embedded systems. These systems have unique characteristics and challenges compared to other domains. A key concern is the timing behavior of embedded systems, which is addressed by timing analysis. Consequently, we survey timing analysis techniques, assessing their applicability for complex embedded systems. The objective of this chapter is twofold: On the one hand, we aim to identify tools and techniques that are promising candidates for industrial application; on the other hand, we survey the current research landscape with the aim to identify opportunities for future research in software reverse engineering.
Book chapter