What is the Internet? How was it created? How does it work?
Investigate the flexibility and power of project-oriented computational analysis, and enhance communication of information by creating visual representations of scientific data.
A simple conceptual introduction to quantum mechanics and quantum computation.
A survey of more advanced stack-based memory corruption bugs (e.g. stack overflow), and how they lead to conditions that allow attackers to execute arbitrary code. The class also covers exploit mitigation technologies found in Microsoft Windows and how attackers bypass these techniques.
This class discusses stealth malware techniques used on Windows. Rootkits are a type of stealth malware that try to hide their presence, and this class shows the data structures they manipulate to achieve this.
An introduction to Trusted Computing concepts, and a detailed look at what the Trusted Platform Module (TPM) can (and can't) do.
This class provides a distilled understanding of some OS mechanisms such as memory management, segmentation, paging, interrupts, and port IO. This knowledge is directly relevant for the future Rootkits and Advanced x86: Virtualization with Intel VT-x classes.
A class on general reverse engineering methodology, applicable to malicious and non-malicious programs. Heavily focuses on the use of IDA Pro for aiding reverse engineering.
Intel processors have been a major force in personal computing for more than 30 years. An understanding of low level computing mechanisms used in Intel chips as taught in this course serves as a foundation upon which to better understand other hardware, as well as many technical specialties such as reverse engineering, compiler design, operating system design, code optimization, and vulnerability exploitation.
This class provides an introduction to the ARM architecture and assembly language.
A survey of basic stack and heap-based memory corruption bugs (e.g. stack overflow), and how they lead to conditions that allow attackers to execute arbitrary code.
A very detailed dive into how binary executable formats work. In particular the PE format used by Windows.