RepoPilot

nationalsecurityagency / ghidra

Search nationalsecurityagency/ghidra

GitHub

Code

How nationalsecurityagency/ghidra is laid out, and where to start for common changes.

There is no import map for this report yet.

Where to start reading

  1. Repository root
  2. Repository root
  3. Likely public API
  4. Likely public API
  5. Suggested starting pointAI
  6. Suggested starting pointAI
  7. Suggested starting pointAI
  8. Suggested starting pointAI

Find files for a task

AI

Add a new processor architecture

  • Define instruction semantics in SLEIGH format (.slaspec) mimicking 6502.slaspec.
  • Specify calling conventions and ABI in .cspec file (e.g., 6502.cspec).
  • Add Module.manifest and build.gradle following the Processors/{ARCH_NAME} pattern.

Add a new reverse-engineering feature module

  • Implement feature logic in Java under src/main/java (e.g., analysis, comparison, or UI plugins).
  • Add build.gradle with appropriate plugin dependencies (e.g., eclipse, application plugins).
  • Include README.md explaining feature purpose, usage, and configuration.

Add a new Elasticsearch-backed plugin

  • Implement Elasticsearch plugin class extending AnalysisPlugin (reference: AnalysisLSHPlugin.java).
  • Define extension metadata in extension.properties (name, version, requires Elasticsearch version).
  • Add build.gradle specifying Elasticsearch and Ghidra dependencies.

Configure and deploy Ghidra server

  • Edit server.conf to set port, hostname, thread pool size, and network options.
  • Configure JAAS authentication in jaas.conf (LDAP, external program, or custom login modules).
  • Generate or import certificates using certTool utility for TLS/SSL.
  • Launch server using ghidraSvr script (ghidraSvr or ghidraSvr.bat on Windows).

Change the public API

Add or update tests

Change build or automation

RepoPilot lists up to 500 files, so a file missing here may still exist.

  • Files marked “likely” are guessed from their names.

Code quality and hotspots

Largest source files

  • Branch points112 per file on average
  • Code issues0 errors, 32 warnings
  • Largest file4,073 lines
  • Hotspot load0 high-risk files

Static checks on the 15 largest source files.

Tests, CI and tooling

  • CIGitHub Actions3 workflows
  • Tests1,522 test filesJUnit · 0.10 test files per source file (file count, not coverage)
  • Dependency updatesNo config detected

Test folders: Ghidra/Debug/Debugger-rmi-trace/src/test/java/ghidra/app/plugin/core/debug/service/tracermi · Ghidra/Debug/Debugger/src/test/java/ghidra/app/plugin/core/debug/gui · Ghidra/Debug/Debugger/src/test/java/ghidra/app/plugin/core/debug/gui/model

Hotspots

Files that change often and branch heavily, highest first. Branch points count if, loop, case, catch, ternary, && and || in the file.