BinaryLens

November 23, 2025 · View on GitHub

BinaryLens is an IDA plugin that speeds up binary analysis by using language models to rename all functions in a binary, explain binaries, analyze individual functions, rename variables, and more. It’s blazing fast and accurate compared to other tools out there.

We recommend using an IDA MCP server for smaller binaries, since this plugin is mainly meant for larger binaries, as it will finish in minutes what takes an MCP server hours.

Here’s a simple example of the results:

Setup

You just need to place the two OpenSSL DLLs (libcrypto-3-x64.dll and libssl-3-x64.dll) in the directory where ida.exe is located, and put the BinaryLens DLL into IDA’s plugins folder.

BinaryLens DLL goes into: %ProgramFiles%/IDA Professional 9.1/plugins.

OpenSSL DLLs go into: %ProgramFiles%/IDA Professional 9.1.

Usage

To select a model or set up your API key, go to the Edit menu in IDA, then BinaryLensSelect Model.

You can start the binary analysis through the Edit menu (BinaryLensRename all subroutines). For function analysis, use the context menu of IDA’s pseudocode window (BinaryLensRename Variables).

Supported models

OpenAI

  • GPT-5

Google Gemini

  • Gemini-2.5-pro (recommended)

Deepseek

  • Deepseek-chat

Compatibility

The plugin requires access to the Hex-Rays decompiler to function. Tested on Windows 10/11 with IDA 9.1 Pro. Mainly tested on x86 binaries but should also work with other architectures.

Compiling the source code

You need to link OpenSSL and IDA’s SDK in Visual Studio’s project settings. The necessary paths are already included, you just need to replace them with your own paths. Also make sure to compile the project in x64.

FAQ

Why not add more model options?

We have tested many models, but only the currently supported ones passed our checks. Adding new models is simple, but not recommended.

Why not send the decompiled functions chunk by chunk?

The models cannot accurately rename functions without analyzing the entire binary at once.

TODO

  1. We already slightly compress the functions before sending, but better compression methods could be added.
  2. Allow interactive chat with the model on a selected function.