Summary

This 2-day course is ideal for intermediate or advanced IDA users looking to further hone their IDA programming. This course focuses on writing file format loaders and processor modules to extend IDA's functionality. Participants will perform prototyping using IDAPython and then write a full-blown implementation for a custom executable image format and processor architecture using the native C++ SDK. Additionally, this course provides attendees with an open development session where they can ask deeper questions and/or focus on specific features or exercises of their choice directly with the trainer.

 

Prerequisites

Proficiency in IDA Pro, good knowledge of Python and C++

 

Computer Requirements

  • Has IDA installed with a valid license for at least the Disassembler and a minimum of 1 Decompiler - we can provide a license for training if need be
  • Runs Windows (Intel), Linux (Intel), or macOS (ARM or Intel) matching your IDA license
  • Has IDAPython (Python 3.8+) installed
  • Has a stable internet connection
  • Can join Google Meets video conferencing, preferably with an active microphone, but not required

 

Trainer

Julian Kirsch, Product Owner, Hex-Rays

In his role at Hex-Rays, Julia sits at the intersection of product, research, and development. Julian spends a lot of time talking to our power users to lear what is working (and what is not) to influence the product roadmap.

Julian has spent nearly half of his life as a reverse engineer, poking around binaries using IDA Pro much like our users. At one point, about 2 years ago, he asked himself, "Why not join Hex-Rays and help build the product in impactful ways?" At the beginning of his time at Hex-Rays, Julian was in development which gives him in-depth knowledge of the codebase and makes him an excellent trainer for all levels. He currently runs our Starter, Advanced Programming, and Advanced Decompiler courses.

Fun fact: Julian can solve a 4x4 Rubik's cube in an impressive amount of time. (He doesn't want to brag too much.)

 

“If you want to learn about implementing you're own processor or loader module, which is extremely important for the embedded side, this is a must-have training. It was beyond my expectation and the instructor’s knowledge of the course material and clarity of the presentation was excellent.”

Course Overview

Session 1: Overview of Scripting Languages & Setup

Approx. 1.5h
  • Components of , Python SDK
  • C++ SDK Setup on Windows/Linux/macOS
  • IDAPython Configuration
 

 

Session 2: Tour of the IDA SDKs

Approx. 3h
  • C++ SDK & API
  • Python API
  • Python Specialities
 

 

Session 3: Interface to the IDA Kernel

Approx. 3h
  • Plugins
  • Loaders
  • Processor Modules
  • Callbacks
 

 

Session 4: Open IDA Development

Time Varies
  • Ask us anything
  • More specific areas & deep dives
 

 

Enroll to one of our next sessions

Advanced: IDA Python and C++ SDK Programming

May 21-22, 2025 10:00 UTC-5 (New York)

Enroll now

Advanced: IDA Python and C++ SDK Programming

Jun 18-19, 2025 10:00 UTC+1 (Paris)

Enroll now

Advanced: IDA Python and C++ SDK Programming

Nov 19-20, 2025 10:00 UTC+1 (Paris)

Enroll now

Advanced: IDA Python and C++ SDK Programming

Dec 17-18, 2025 10:00 UTC-5 (New York)

Enroll now