EC3740 Reverse Engineering in Electronic Systems

This course presents fundamental, systems level concepts for developing an understanding of system functionality without a prior access to the system's design specifications. It considers generalized approaches to developing a set of specifications for a complex system through orderly examination of components of that system. The course illustrates procedures for identifying the system's components and their interrelationships. The course is divided into two parts. The first part focuses on software reverse engineering where students perform elementary reverse engineering on basic programs using assembly language and software disassembly. Topics related to software reverse engineering including obfuscation techniques and malware analysis will be discussed. The second part of the course will focus on hardware reverse engineering by studying integrated circuit (IC) and circuit board analysis using SPICE and black box techniques. Other tools that aid in hardware reverse engineering such as JTAG will be studied in depth. Analysis of reverse engineering using mathematics, including power analysis will also be studied.

Prerequisite

EC2700

Lecture Hours

3

Lab Hours

2

Course Learning Outcomes

·       Be able to discuss and understand reverse engineering taxonomy.

·       Identify general reverse engineering procedures.

·       Understand the fundamentals behind software reverse engineering, including the process of disassembly.

·       Identify software obfuscation mechanisms given an assembly program.

·       Understand the fundamentals behind hardware reverse engineering with an emphasis on black box techniques and printed circuit board analysis.

·       Identify basic reverse engineering analysis techniques and evaluate static vs dynamic analysis.

·       Identify and evaluate reverse engineering countermeasures.