DAILA  by mahaloz

Decompiler plugin for interacting with AI models

created 2 years ago
631 stars

Top 53.4% on sourcepulse

GitHubView on GitHub
Project Summary

DAILA provides a unified interface for integrating AI language models into decompilers, targeting reverse engineers and security researchers. It streamlines AI-assisted code analysis by offering consistent functionality across multiple decompilation tools and supporting a wide range of LLMs, including local models like VarBERT for variable renaming.

How It Works

DAILA abstracts decompiler interactions through the LibBS library, enabling compatibility with IDA Pro, Ghidra, Binary Ninja, and angr-management. It leverages LiteLLM to support various AI backends, from commercial APIs like OpenAI and Claude to local models. This decompiler-agnostic approach and broad LLM support allow users to apply AI for tasks such as function summarization, variable renaming, vulnerability identification, and more, directly within their preferred decompiler environment.

Quick Start & Requirements

  • Install via pip: pip3 install dailalib and daila --install. For VarBERT support: pip3 install 'dailalib[full]' and daila --install.
  • Ghidra requires Python 3 in the path and enabling the DAILA script in the Script Manager.
  • Supports IDA Pro (>= 8.4), Ghidra (>= 11.1), Binary Ninja (>= 2.4), angr-management (>= 9.0).
  • Supports LLMs via LiteLLM (e.g., ChatGPT, Claude, Llama2, Gemini).
  • Full installation includes VarBERT model downloads.
  • Docker image available for offline use: docker pull mahaloz/daila:latest.
  • Official documentation and demo available.

Highlighted Details

  • Featured in HITCON CMT 2023 keynote.
  • Supports local variable renaming with VarBERT (S&P 2024 paper).
  • Offers GUI plugins and scripting library for decompiler integration.
  • Supports prompts for summarization, renaming, vulnerability finding, and free-form queries.

Maintenance & Community

  • Active development indicated by recent features and support for new decompilers/models.
  • Discord server hosted on the BinSync server for community support.

Licensing & Compatibility

  • No explicit license mentioned in the README. Compatibility for commercial use or closed-source linking is not specified.

Limitations & Caveats

The README does not specify the project's license, which is a critical factor for commercial adoption or integration into closed-source projects. Ghidra integration has specific Python path requirements.

Health Check
Last commit

2 months ago

Responsiveness

1 day

Pull Requests (30d)
0
Issues (30d)
0
Star History
23 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.