This course introduces debugging tools in OS X. Powerful utilities ubiquitous in OS X, such as dtrace, heap, leaks, Instruments, Shark, and - the built-in debugger, gdb.
We discuss how to develop and use debugging skills to deal with common bugs, such as memory corruptions, erroneous usage of pointers, multi-threaded code and race-conditions, socket bugs, and more. Special consideration is given to analyzing core dumps and crashes.
Click here for detailed syllabusThis course covers the architecture of OS X from the ground up. OS X is the operating system behind Apple's Macs, iPhones, and iPads. Students will become familiar with OS X's layered architecture, from the core of Darwin (including an overview of the XNU kernel), through the POSIX interfaces and BSD system calls, and up to the various core frameworks.
This course also introduces Objective-C, the language of choice for framework-enabled development. Note: This code does not discuss GUI development in depth, and only touches upon it. It does, however, cover most other aspects of programming, applicable to OS X in both its Mac and iPhone ("iOS") flavors.
Click here for detailed syllabusThis course accompanies Jonathan Levin's highly praised trilogy, "*OS Internals" with deeper discussions and hands-on examples. The focus is on MacOS High Sierra (10.13) and Mojave (10.14) as well as iOS 11 and 12, with a focus on the significant changes put into the later versions.
This is your chance to learn about the nooks and crannies of Apple's operating systems - from the man who literally wrote the book. The course will also present the book's tools with in depth coverage, as well as introduce more bonus materials and updates.
Click here for detailed syllabusThis course, modeled after Jonathan Levin's "*OS Internals: Volume III", takes a practical approach to explaining the security of Apple's operating systems, by explaining the various mechanisms employed by Apple to secure the system - and yet demonstrating how they fail, time and time again.
Through case studies of jailbreaks and Pegasus (the only weapons-grade malware caught in the wild), the techniques for protecting the OS integrity - as well as measures used to bypass them - are detailed. Code samples detailing usage of each mechanism are provided as actual examples for discussion in class.
Actual jailbreak code, including the latest iOS 11.1.2 Liber* family of jailbreaks, is presented. Advanced tools - such as Xn00p, our live kernel inspection/debugging tool - allow unprecedented visualization of what happens behind the scenes in every step of the jailbreak process.
Click here for detailed syllabusThis course takes a practical approach to device driver construction in OS X. Focusing on aspects of driver architecture, IOKit APIs, and just enough of the overall kernel structure required in order to interface correctly and create a stable, functional device driver.
Click here for detailed syllabus