Software Reverse Engineering and Security Analysis
Dr. Evil has planted a deadly bomb hidden deep within London’s complex transportation system. Law enforcement is uncertain if the bomb was planted in a taxi, a bus, or a train in the London Underground. Luckily, the London Metropolitan Digital Forensic Unit has established network communication with the bomb device, and they believe it is possible to disarm the bomb remotely before it kills dozens or possibly hundreds of people. Your challenge, if you choose to accept it, is to reverse engineer the firmware image from the device and defuse all 10 stages of the bomb before it detonates at the end of the course in three days!
This hands-on course offers an examination of the fundamental techniques of software reverse engineering used by attackers and security researchers alike. The lectures and lab exercises provide a practical foundation for reverse engineering across a broad range of target architectures including: x86, x86-64, MIPS, PowerPC, ARM, and AARCH64. After taking this course, students will be able to apply their newly gained skills across the full spectrum of computing platforms, from bare-metal and RTOS-powered embedded systems to mobile and desktop systems running Android, Windows, Linux and MacOS.
Attendees will gain hands-on experience with state-of-the-art techniques and tools of the hacking trade through a series of lab exercises that reinforce the content of the lecture material. The exercises will incorporate all of the major instruction sets, including x86, MIPS, PowerPC, and ARM. Students will learn how to use Ghidra to reverse engineer binary images. The skills learned in this course will be transferable to other popular disassemblers, such as IDA Pro and Binary Ninja.
Attendees should be experienced with the C and/or C++ programming languages and should have some prior exposure to assembly language.
Each student will need to provide their own laptop and must have administrator access. Some of the lab exercises will be performed in a VM, and the students should install VirtualBox on their system before arriving for the first day of class.
Download the course syllabus here.