Available Course Modules

Course material is customized to our clients. Our core offering, Automated Reverse Engineering with Binary Ninja, is available over 1-3 days. Then, add advanced modules that cover malware analysis or vulnerability research. All course material is delivered on-site by our expert instructors.

Automated Reverse Engineering with Binary Ninja (1-3 days)

Master Binary Ninja’s user interface and the basic concepts behind reverse engineering binaries. After the first day, students will be able to reverse engineer software and automate simple tasks. Topics include:

On subsequent days, we’ll take your reverse engineering skills to the next level. Students will dive deeper into the Python API, automate most common analysis tasks, and extend Binary Ninja’s built-in functionality with plugins. Topics include:

Optional Advanced Modules

Automated Malware Analysis with Binary Ninja (2 Days)

Building on the Automated Reverse Engineering module, this two-day module provides a toolbox for tackling the advanced techniques that malware uses to hide or obscure its functionality. By the end of the module, analysts will be able to write plugins that detect and deobfuscate strings and control flow to make sense of a binary’s functionality, as well as scripting detec- tion routines to identify malicious behavior for batch processing. Topics include:

Vulnerability Research with Binary Ninja (2 Days)

Building on the Automated Reverse Engineering module, this two-day module gives researchers the tools to automate bug-hunting tasks in binary applications, then write exploit payloads in C with Binary Ninja. Exercises are provided as a friendly Capture the Flag format. At the end of the module, students will be able to find and exploit vulnerabilities in binary code without access to source. Topics include:

Custom Loaders and Architectures (1 Day)

This one-day module trains analysts to expand Binary Ninja’s support for new file types and architec- tures. Students will also learn how to extend existing architecture plugins. At the end of the module, stu- dents will be able to reverse engineer an instruction set, and implement disassemblers, lifters, and loader plugins. Topics include:

Extending Binary Ninja with the C++ API (1 Day)

This one-day module demonstrates the differences between the different APIs and how to write effective Binary Ninja plugins in C++. At the end of the module, students will be able to develop standalone applications that interface with Binary Ninja’s core. Topics include: