Files
ghidra-cli/CHANGELOG.md
T
2026-02-04 14:26:33 -08:00

2.6 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

Changed

  • BREAKING: Replaced Python bridge (bridge.py) with Java bridge (GhidraCliBridge.java)
    • Architecture simplified from 3 layers (CLI → Rust daemon → Python bridge) to 2 layers (CLI → Java bridge)
    • No separate Rust daemon process — CLI connects directly to Java bridge via TCP
    • Bridge runs as a GhidraScript inside analyzeHeadless JVM
    • Dynamic port binding with port/PID file discovery (~/.local/share/ghidra-cli/bridge-{hash}.port)
  • BREAKING: Removed Python/PyGhidra dependency — only Java 17+ and Ghidra are required
  • ghidra setup no longer installs PyGhidra
  • ghidra doctor no longer checks for Python/PyGhidra

Removed

  • All 13 Python scripts (bridge.py, find.py, symbols.py, types.py, comments.py, graph.py, diff.py, patch.py, disasm.py, stats.py, program.py, script_runner.py, batch.py)
  • Rust daemon process and associated modules (handler.rs, handlers/, ipc_server.rs, process.rs, queue.rs, state.rs, cache.rs)
  • Dependencies: remoc, interprocess, fslock
  • Unix domain socket IPC — replaced with direct TCP to Java bridge

Security

  • Local TCP communication only (localhost binding, no external access)

0.1.0 - 2025-01-26

Added

  • Daemon-only architecture with persistent Ghidra connection
  • Auto-start daemon on import/analyze/quick commands
  • Comprehensive reverse engineering commands:
    • Function analysis (list, decompile, disassemble, calls, xrefs)
    • Symbol management (list, get, create, delete, rename)
    • String analysis and search
    • Type definitions and application
    • Comment management
    • Memory operations
    • Cross-reference analysis
  • Search capabilities:
    • String patterns
    • Byte sequences
    • Function names
    • Crypto constants
    • Interesting patterns
  • Call graph generation and export
  • Binary patching (bytes, NOP, export)
  • Script execution (Python and Java)
  • Batch operations
  • Flexible output formats:
    • Human-readable (default for TTY)
    • Compact JSON (default for pipes)
    • Pretty JSON (--pretty flag)
  • Expression-based filtering
  • AI agent integration support

Security

  • Local IPC communication only (Unix sockets / named pipes)