Training outline and agenda:
Day 1 (Browsers):
– Introduction to the course
– Introduction to modern browser internals
– Source to Bytecode
– Visualising Objects in-memory
– JIT
– Source code overview
– Chrome
– Firefox
– Finding old bugs for both
– Exploring Modern JavaScript Pipelines
– Compiling JS shells
– Debugging objects, bytecode, and JIT, etc for both JS engines
– Where to go from here
Day 2 (Operating Systems/IoT):
– Introduction to Operating Systems
– Exploring Linux source code
– Building Linux
– Setting up Kernel Debugging
– Debugging the kernel
– Introduction to IoT
– Finding IoT firmware
– Extracting IoT firmware
– Finding points of interest in the filesystem
– Exploring the device dynamically
– Where to go from here
Day 3 (Virtualisation):
– Introduction to Virtualisation Internals
– Points of interest in Virtualisation
– Overview of VirtualBox source
– Overview of Qemu/KVM source
– Debugging VirtualBox and Qemu
– Generating test-cases using Linux drivers
– Where to go from here
(Bonus if there’s time – intro to VMWare Fusion reversing – tips on symbols, strings, and guest-to-host communication)