Writing a Binary Ninja Plugin for the M6502 Architecture in C++



As a bit of a side project, I spent some time writing a Binary Ninja1 plugin for the 6502 architecture2. This plugin consists of a binary lifter and disassembler, and ultimately adds support for reversing 6502 binaries to Binary Ninja. Vector 35 (the developers of Binary Ninja) already maintain a 6502 plugin3. In fact, this new plugin was heavily influenced by the existing plugin. However, that plugin, like most other Binary Ninja plugins, is written in Python. The goal of this project was to recreate that plugin, but using the C++ API. The code itself can be obtained here. The README should contain all the information needed to build and test the plugin. It should be noted that I am not particularity proficient with C++ (another reason for doing this project) and I don’t intend on maintaining the plugin. My goal for releasing it is to help others looking to navigate Binary Ninja’s C++ API.

1 Binary Ninja

2 M6502 Architecture

3 Binary Ninja 6502 Python Plugin