Welcome to Binary Ninja! You're here because you love reverse engineering, and want to try everyone's new favorite decompiler. If you need to learn how to reverse engineer, check out our Novice to Ninja course. This class covers absolutely everything you need to know about Binary Ninja to transfer and/or super-charge your existing skill-set in just two days! We'll get you started, and we'll show you how to go further than ever before.
Prerequisites
Students must know how to reverse engineer using comparable tools. Being comfortable recognizing structure member accesses in decompiled code and creating structures types is required. Fluency in basic decompiler features such as reading disassembly, naming symbols, using cross-references, and identifying stack arrays are all required. Experience with other interactive decompiler functionality such as debugging, scripting, function matching, deobfuscation, diffing, patching, and similar are all extremely useful but not required.
Key Learning Objectives
- A comprehensive understanding of how to use Binary Ninja
- Improve the accuracy of decompilation through naming, typing, and patching
- Configure your Binary Ninja to look, feel, and work how you expect
- Familiarity with the API for automation, plugins, and customizations
- Repeatable workflows for different reversing tasks
Who Should Attend?
- Reverse Engineers experienced with other decompilers
- Vulnerability Researchers
- Malware Analysts
- Firmware Analysts
- Deobfuscation Engineers
Course Agenda
Day 1
- Binary Ninja overview: decompiler, ILs, debugger, extensions, and resources
- Migrating from other tools: keybindings, settings, themes, and analysis databases
- UI fundamentals, navigation, sidebars, views, and layout
- When and why to use HLIL, MLIL, vs LLIL
- Working with High-Level Language representations and Workflows
- Naming, interaction, and annotation
- Applying types, creating types, magic structure creation workflow
- Practice labs throughout
Day 2
- Patching, transforms, raw binaries, Firmware Ninja, and unusual files
- Debugger, breakpoints, stack views, time travel, and dynamic analysis
- Sidekick, slicing, working with large binaries
- Function identification, WARP, working with stripped and unknown binaries
- Extensions, scripting, and basic automation
- API overview, IL traversal, code modeling, and pattern matching
- Practice labs throughout
Hardware/Software Requirements
A laptop that can run Binary Ninja (Ubuntu 22.04/24.04 x64/arm64; Windows 10/11 x64; MacOSX 14+ x64/arm64).
(Optional) An x64 Linux VM to run class samples
(Optional) A Binary Ninja license for scripting exercises. Purchase one here.
Included Course Materials
- Binary Ninja Free
- Slides, cheat-sheets, and tons of useful diagrams and reference resources
- Example scripts and binaries
- Full answers and solutions
- Take-home problems at the end of class to practice what you learned and challenge you to go further!
- (Upon request) Certificate of participation or completion usually redeemable for Class-A credit hours towards cert renewals; Check with your cert provider for additional requirements and how to redeem