Abstract
This thesis attempts to cover many aspects concerning analysis, reverse engineering, and provenance attribution of firmware from embedded devices. The intended reader of this thesis is someone familiar with, or at least aware of, the software build process, the analysis of software, and reverse engineering of software. This thesis discusses some of the differences between firmware and traditional software and may serve as a bridge for those readers that may be more familiar working in a software environment and are interested in analyzing embedded devices. The thesis will include strategies for retrieving firmware binaries from a target device, reverse engineering with the intent to provide provenance information about the firmware, and briefly cover future work of using machine learning to analyze firmware.