This course explores security features across major smart device platforms and provides an overview of the widely used OS platforms in the market. The course is structured in two parts. The first part delves into essential reverse engineering techniques (e.g., code analysis, dynamic and static analysis, de-obfuscation, and firmware exploitation) particularly within the context of Android. The second part is a group project, where students form teams to (i) develop and secure Android apps, (ii) reverse engineer Android apps created and secured by other teams, and (iii) present their findings on the security measures implemented in their own app and their approach to reverse engineering other teams' apps.
Students are recommended to have a solid understanding of the following knowledge prior to enrolling: Linux operating systems, C programming, system architecture, and network programming.