Day 1 — Browsers:
Both Firefox and Chrome will be covered in this training, with focus on the JavaScript engine internals:
– Parsing
– The JavaScript VM
– Object Representation
– Various Optimisations
– Just-in-time Compilation
– Debugging Techniques
– Finding Old Vulnerabilities
Day 2 — Operating Systems/IoT:
The Linux kernel will be the main focus of this day, with emphasis on internals, such as:
– Introduction to Operating Systems and the x86_64 architecture
– Exploring Linux Source Code and building the kernel
– Setting up and Kernel Debugging
– Exploring the kernel init process
– Virtual and Physical memory, and paging internals
– System Calls and Interrupts
– Process Representation, Context Switching, and scheduling
– Memory protections in user land and kernel land
– Filesystem and Networking Internals
– Introduction to IoT
– Finding and extracting IoT Firmware
– Finding points of interest in the file system
Day 3 — Virtualisation:
Both VirtualBox and QEMU/KVM will be covered in this training, with emphasis on various internals, such as:
– Software virtualisation and Hardware-assisted virtualisation internals (VT-x)
– Emulated Devices
– Port IO/MMIO
– Guest-to-host communication (and guest additions)
– Network Communication
– Paravirtualisation
– Debugging techniques
– If there is time, a bonus introduction to getting started with VMWare reversing