This year, we’re preparing to ship a number of very important features in a big upcoming update for Binary Ninja. One of those features will be coming in the form of a new plugin: Sidekick. Sidekick is a free plugin, but many of its features work with a paid service that leverages several different machine learning models. We’re currently taking sign-ups for our limited public release of the service, which is currently planned for the week of January 15 (exact date TBD).
If you’re interested, or just want more information, please head over to our brand-new Binary Ninja Sidekick site for more details. Anyone that makes an account before the limited public release will be placed in our pool of early access candidates and we’ll reach out to you with further instructions if you’re selected.
What is Sidekick?
Sidekick is an AI-powered extension to Binary Ninja with features and capabilities to assist users in analyzing and understanding binary programs.
Free Features
The following features of the plugin work right now even without the forthcoming paid service:
Quick Search and Navigation
- User-Defined Indexes: Scripts can be used to find points of interest in a binary and display them.
- Code Insight Map: View relationships between items in your indexes to help you discover and understand high-level functionality of the program.
Improve Code Clarity
- Structure Recovery: Recover structure definitions for code, rather than just displaying dereferenced pointers. The feature without the service requires manually creating function components for related functions.
Interactive Assistance
- Notebook: Record a local log of notes about given functions.
Documentation
- Documentation View: Create reports associated with a function to document your progress.
Paid Service Features
The following additional features are available with the full service:
Quick Search and Navigation
- User-Defined Indexes: Use natural language to automatically create indexer scripts with access to a library of built-in indexer scripts that use the service’s language classifiers to find points of interest. For example, find all of the functions and strings in a binary related to “File I/O”, “Networking”, or “Cryptography”.
Improve Code Clarity
- Structure Recovery: Automatically recover structure definitions for code without having to manually create components.
- Variable Naming: Receive suggestions for variable names to help you understand the purpose of parameters and variables in functions.
- Structure and Field Naming: Receive suggestions for structure and field names to improve your understanding of the data structures in your binary.
- Function Naming: Receive suggestions for function names that summarize what the code does.
- Function Comment: Receive suggestions for a comment that briefly summarizes a function to quickly understand and documents its purpose.
- Function Callee Naming: Generate names for all functions called by the current function to focus your analysis and get better names.
Interactive Assistance
- Notebook: Interact with Sidekick through a chat interface to answer your questions about the binary and interleave it with local notes.
Program Structure Analysis
- Component Creation: Identify groups of related functions and arrange them hierarchically, making it easier to understand the binary program’s structure. Also enables automatic structure recovery.
Documentation
- Documentation View: Automatically generate editable, man page-like descriptions of functions to help document your progress.
- Code Comments: Make sense of cryptic code by inserting a comment that automatically summarizes it.