Skip to content
 
 

Repository files navigation

AiDA

Build and Release License: MIT

AiDA is a native C++ assistant plugin for IDA Pro 9.4. It collects function context, sends it to the provider you select, and presents analysis or proposed database changes inside IDA.

What works

  • Function analysis, custom questions, and context export.
  • Suggested function and symbol names.
  • Generated comments, structures, and C++ hook snippets.
  • Gemini, OpenAI, OpenRouter, Anthropic, a local Copilot-compatible proxy, and generic OpenAI-compatible local or hosted endpoints.
  • Streaming responses, cancellation, bounded retries, model discovery, token usage, and a bounded assistant transcript retained while its viewer remains open.
  • Review-before-apply previews with evidence, validation, rollback/undo support, and scope checks for database mutations.
  • Cancellable batch analysis, an IDB-aware response cache, analysis profiles, target metadata, and deterministic Unreal global-candidate scanning.
  • Configurable context depth, prompt budget, model, endpoint, and request behavior.

The Unreal scanner reports static, evidence-backed candidates; it does not claim that a candidate is a validated runtime pointer. Model output is probabilistic, and every proposed mutation must still be reviewed.

Compatibility

The release workflow is configured to compile artifacts against the pinned IDA SDK 9.4 release.

Archive platform Release workflow Validation in this change
Windows x86-64 Configured Build, tests, and IDA 9.4 headless load smoke
Linux x86-64 Configured Build and tests
macOS x86-64 Configured Requires its first hosted CI run
macOS arm64 Configured Requires its first hosted CI run

A green build proves compilation and packaging, not behavior in every IDA installation. Older IDA versions are not currently release targets.

Install

  1. When a release containing this version is published, download the ZIP for your platform and its checksum from Releases. Until then, build and package the current source using SETUP.md.

  2. Verify it against SHA256SUMS.txt or the adjacent .sha256 file.

  3. Install the ZIP with HCLI:

    hcli plugin install ./AiDA-<version>-<platform>.zip
    

    Or extract it to an aida-ai-assistant directory under:

    • Windows: %APPDATA%\Hex-Rays\IDA Pro\plugins\
    • Linux: $HOME/.idapro/plugins/
    • macOS: $HOME/Library/Application Support/IDA Pro/plugins/

Release builds prefer static OpenSSL linkage on Windows and macOS. Windows packaging also collects any non-system runtime DLLs that the selected toolchain leaves dynamic. Linux uses the distribution OpenSSL runtime.

Configure

Open AI Assistant > Settings or the AI Assistant code-view context menu. Choose a provider, model, and endpoint. Provider keys can also come from:

  • GEMINI_API_KEY
  • OPENAI_API_KEY
  • OPENROUTER_API_KEY
  • ANTHROPIC_API_KEY
  • AIDA_COMPATIBLE_API_KEY

Key fields are masked. If protected persistence is enabled, Windows stores an inline DPAPI ciphertext and macOS stores the value in Keychain. Linux never falls back to plaintext persistence; use the environment variables above. Environment credentials always override persisted values and are not copied into the settings file. Copilot support expects an independently operated, OpenAI-compatible proxy at the configured loopback address; AiDA does not bundle or audit that proxy.

Data and trust boundary

AiDA transmits selected pseudocode, disassembly, strings, symbols, types, and cross-reference context to the configured provider or custom endpoint. Confirm that you are authorized to share that material and inspect the destination before sending it. No model response should be treated as authoritative reverse engineering evidence.

Plain HTTP endpoints are rejected unless they resolve to an explicit loopback host. Response sizes and transcript/batch retention are bounded. Optional literal redaction removes quoted literals from code and surrounding snippets, but users should still inspect the preview because metadata and control flow can remain sensitive.

CUA control of a visible IDA window (Windows)

tools/cua_ida_agent.py connects Cua Driver to one already-open IDA window. It is a sidecar, not an in-process plug-in dependency: CUA supplies window screenshots and input while AiDA continues to provide its normal IDA actions.

Install Cua Driver, open the intended IDB in normal IDA, then use a vision-capable CUA model. The script reads its key from an environment variable instead of AiDA's settings. For example:

uv run --python 3.11 --with cua-agent python tools/cua_ida_agent.py `
  --model openai/computer-use-preview `
  --task "Analyze the current function and add concise evidence-backed comments." `
  --allow-ui-input --allow-idb-writes --allow-foreground

GUI input requires both --allow-ui-input and --allow-idb-writes: a GUI event cannot reliably distinguish navigation from an IDB mutation. It tries background input first and permits foreground escalation only with --allow-foreground. Runs are limited to 30 input actions by default and never save, close, export, run, or debug the target.

Validate the local policy layer without IDA or credentials:

py -3.14 tools/cua_ida_agent.py --self-test

Build and contribute

SETUP.md is the single source of build instructions. See CONTRIBUTING.md for pull requests and SECURITY.md for private vulnerability reports.

License

AiDA is licensed under the MIT License. Bundled dependency notices are in LICENSES/THIRD_PARTY.md.

About

An AI-powered assistant for IDA 9.0+ to accelerate reverse engineering of C++ games.

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages