applied security conferences and training: CanSecWest | PacSec | EUSecWest |

Security Masters Dojo

Advanced and intermediate security training and technology enhancement for information security professionals.

CanSecWest: Security Masters Dojo Vancouver

Automated Reverse Engineering with Binary Ninja

Register for the March 14-17, 2020 (4-day course)

Josh Watson


This four-day training begins by diving deep into Binary Ninja's Python API, and then explores how using the Binary Ninja Intermediate Languages (BNILs) to implement analysis tasks is superior to writing scripts based on just the disassembly. By the end of the first two days, students will be able to automate common analysis tasks and extend Binary Ninjas built-in functionality with plugins to perform complex tasks such as deobfuscating encoded strings and recovering structures. The third and fourth days give researchers the tools to automate bug-hunting tasks in binary applications and write exploit payloads in C with Binary Ninja. The course includes friendly Capture-the-Flag exercises to reinforce learning. At the end of the training, students will be able to find and exploit vulnerabilities in binary code without access to source.

Key Learning Objectives:

PREREQUISITE WARNING Each class has prerequisites for software loads and a laptop is mandatory. These individual class guides will list material the students are expected have knowledge about coming in and software tools that need to be pre-installed before attending so you get the maximum benefit from the focused intermediate or advanced level course. Please pay particular attention to the prerequisites, as the material listed there will not be reviewed in the courses, and will be necessary to get the maximum benefit out of these educational programs.

Course Modules:

Day 1:

Day 2:

Day 3:

Day 4:


Students must have experience with Python and C; anyone without this experience will not be successful. C++ experience is useful, but not required. Students should also have at least a foundational knowledge of an assembly language, as well as reverse engineering concepts.

What you will need to bring:

Students should bring a laptop that meets the following requirements:

What to Expect?

Students will be provided with: