This four-day course trains students to do sophisticated program analysis using Binary Ninja and the Binary Ninja Python API for the purpose of vulnerability research with the goal of improving auditing processes, improving ability to identify interesting code paths, and encoding bug primitives.
In the class, students will learn Binary Ninja inside and out by extending its analysis capabilities to support a custom architecture, which is difficult to analyze manually. Students will also leverage the Binary Ninja plugin architecture to identify vulnerabilities in a machine architecture independent way. After taking this course, students will have experience working with the least intuitive and even some undocumented parts of Binary Ninja to create powerful program analysis tools which can be used across architectures.
Students should have prior experience in the basics of software reverse-engineering.
Students should have workstations or laptops with Binary Ninja and VMware Workstation 15 Pro or Fusion 11 Pro installed with a clean install of Ubuntu 18.04.