Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
926ca36
Initial commit: Ghidra MCP plugin and Python bridge server
Aug 30, 2025
a6fa758
Merge branch 'main' of github.com:bethington/ghidra-mcp
Aug 30, 2025
8d038f8
Update to Ghidra 11.4.2 and add deployment automation
Aug 30, 2025
62eb56b
Add new MCP tools: get_function_jump_target_addresses and create_label
Sep 16, 2025
e44b5dd
Add Core Data Type Tools for Ghidra MCP
Sep 16, 2025
6e41835
Upgrade Java runtime to version 21
Sep 23, 2025
1f00e65
Complete package rename and comprehensive test suite overhaul
Sep 23, 2025
4cd195d
feat: comprehensive project modernization and quality improvements
Sep 23, 2025
32d16bb
feat: add comprehensive GitHub Actions release workflows
Sep 24, 2025
fb36487
fix: enhance zip file handling in GitHub Actions workflows
Sep 24, 2025
0f2b313
fix: enhance release workflow debugging and file handling
Sep 24, 2025
ae4d6e6
feat: Implement calling convention support and major project cleanup
Sep 30, 2025
e92dbdf
feat: v1.3.0 - code review fixes, cleanup, and new tooling
bethington Oct 10, 2025
66815de
feat: v1.5.1 - Batch operations, ROADMAP documentation, and project c…
bethington Oct 10, 2025
b5cf238
feat: Auto-detect version in deploy-to-ghidra.ps1 script
bethington Oct 10, 2025
61d0af7
docs: comprehensive documentation review and v1.5.1 alignment
bethington Oct 10, 2025
e4b7292
docs: update DOCUMENTATION_INDEX to reflect v1.5.1 structure
bethington Oct 10, 2025
792294a
docs: remove project-specific research file
bethington Oct 10, 2025
701dc4d
docs: rewrite UNIFIED_ANALYSIS_PROMPT for Claude 4.5 optimization
bethington Oct 10, 2025
b9789f9
feat(v1.6.0): Add validation tools, enhance search, reorganize docume…
bethington Oct 10, 2025
2fb74fd
docs: add optimized function documentation prompts
bethington Oct 11, 2025
ed13979
feat(v1.6.1): Performance fixes - event flushing and per-endpoint tim…
bethington Oct 11, 2025
752f357
docs: rewrite function documentation workflow for improved clarity
bethington Oct 11, 2025
c765204
feat(v1.6.3): Fix batch_rename_variables timeout with event suppression
bethington Oct 11, 2025
8c90abd
Release v1.7.3: Fix disassemble_bytes transaction commit
bethington Oct 13, 2025
d29f33f
feat(v1.8.0): Add comprehensive reverse engineering documentation suite
bethington Oct 16, 2025
dcd0c17
chore: Reorganize project structure for better maintainability
bethington Oct 16, 2025
023bb77
feat: Add reverse engineering utility scripts
bethington Oct 16, 2025
f11fe95
chore: Update version to 1.8.0 across all project files
bethington Oct 16, 2025
d37c9d4
chore: Update GhidraMCPPlugin @PluginInfo to v1.8.0
bethington Oct 16, 2025
891eddc
feat: Define __d2edicall calling convention for EDI-based context pas…
bethington Oct 24, 2025
5c37bb2
docs: Record __d2edicall installation in x86win.cspec
bethington Oct 24, 2025
de08e85
docs: Document successful __d2edicall application to BuildNearbyRooms…
bethington Oct 24, 2025
112fdb6
docs: Add __d2edicall to function documentation workflow
bethington Oct 24, 2025
8b609c3
docs: Reorganize project structure and consolidate documentation
bethington Oct 25, 2025
76ef5a0
chore: Bump version to 1.8.1
bethington Oct 25, 2025
3c81ac5
fix: Update remaining version references from 1.8.0 to 1.8.1
bethington Oct 25, 2025
a4294d8
docs: Add comprehensive version update checklist
bethington Oct 25, 2025
75e3177
docs: Update CLAUDE.md with current project information
bethington Oct 25, 2025
aab8ef7
docs: Fix prompt tool usage patterns to avoid retries
bethington Oct 26, 2025
fe7d912
Release v1.9.2: Documentation organization and production readiness
bethington Nov 7, 2025
a861f1f
Add comprehensive project documentation and tools
bethington Nov 7, 2025
dc07167
Complete comprehensive data analysis of Game.exe
bethington Nov 7, 2025
c26e0ba
docs: Improve FUNCTION_DOC_WORKFLOW_V2.md with variable renaming guid…
bethington Nov 8, 2025
dcbeb1a
docs: Improve FUNCTION_DOC_WORKFLOW_V2.md with explicit variable rena…
bethington Nov 8, 2025
3e48409
docs: CRITICAL FIX - Document Ghidra variable renaming limitation
bethington Nov 8, 2025
3c1f631
Fix analyze_function_completeness to detect undefined types
bethington Nov 8, 2025
a36ff30
feat: Enhance completeness tool with plate comment structure validation
bethington Nov 8, 2025
5c8f488
feat: Add Hungarian notation validation to completeness tool
bethington Nov 8, 2025
72a4820
Release v1.9.3: Documentation organization and workflow enhancements
bethington Nov 14, 2025
cbcf991
docs: Add DATA_TYPE_INVESTIGATION_WORKFLOW.md prompt
bethington Nov 21, 2025
6b49aac
docs: Add paragraph-long quick reference for data type investigation …
bethington Nov 21, 2025
9571e6b
feat: Add autonomous workflow system with Ghidra process management
bethington Nov 26, 2025
a73428e
feat: Add auto-recovery, session persistence, and logging to workflows
bethington Nov 26, 2025
6293ac3
Add parallel function processing and workflow modules
bethington Dec 2, 2025
17310c0
feat: Add program management tools and enhanced documentation workflows
bethington Dec 3, 2025
92cec6a
feat: Add Function Hash Index for cross-binary documentation propagation
bethington Dec 4, 2025
55315f5
docs: Update documentation for v1.9.4 Function Hash Index tools
bethington Dec 4, 2025
4a445d9
docs: Fix incorrect tool references in workflow documentation
bethington Dec 4, 2025
8fc5763
docs: Fix incorrect tool references across all prompts documentation
bethington Dec 4, 2025
7d839c8
docs: Fix remaining old tool name references across project
bethington Dec 4, 2025
3c962be
feat: Add Ghidra scripts and enhanced function listing for cross-bina…
bethington Dec 4, 2025
2015424
feat: Add shell script for copying Ghidra libs on macOS/Linux
johndpope Jan 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .env.template
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Environment variables for GhidraMCP development
# Copy this file to .env and customize as needed

# Ghidra server configuration
GHIDRA_SERVER_URL=http://127.0.0.1:8080/

# MCP server configuration
MCP_HOST=127.0.0.1
MCP_PORT=8081

# Logging configuration
LOG_LEVEL=INFO

# Python path (if needed)
# PYTHONPATH=${PYTHONPATH}:${workspaceFolder}
321 changes: 321 additions & 0 deletions .github/MARKDOWN_NAMING_GUIDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,321 @@
# Markdown File Naming Best Practices

> **Standards for naming markdown files** in the Ghidra MCP project.

---

## 📋 Best Practices Summary

### ✅ Standard Conventions

1. **Use kebab-case** (lowercase with hyphens) for most files
- ✅ `getting-started.md`
- ❌ `GETTING_STARTED.md`

2. **Reserve UPPERCASE** for special files only
- ✅ `README.md` - Entry point documentation
- ✅ `CHANGELOG.md` - Version history (industry standard)
- ✅ `CONTRIBUTING.md` - Contribution guide (GitHub standard)
- ✅ `LICENSE.md` - License file (legal document)

3. **Use descriptive, readable names**
- ✅ `binary-analysis-guide.md`
- ❌ `BAG.md`

4. **Keep it concise** (under 40 characters)
- ✅ `structure-discovery-guide.md`
- ⚠️ `comprehensive-structure-discovery-master-guide-with-examples.md` (too long)

5. **Avoid special characters**
- ✅ `api-reference.md`
- ❌ `api_reference.md` (use hyphens, not underscores)
- ❌ `api reference.md` (no spaces)

6. **Use singular form** unless plural is standard
- ✅ `error-code.md`
- ❌ `error-codes.md` (unless documenting multiple)

---

## 🔄 Recommended Renames

### Root Level Files

| Current Name | Recommended Name | Reason | Priority |
|--------------|------------------|--------|----------|
| **Keep As-Is (Industry Standards)** ||||
| `README.md` | ✅ Keep | GitHub/industry standard | - |
| `CHANGELOG.md` | ✅ Keep | Industry standard | - |
| `CONTRIBUTING.md` | ✅ Keep | GitHub standard | - |
| `LICENSE` | ✅ Keep | Legal standard | - |
| **Project Core** ||||
| `START_HERE.md` | `getting-started.md` | More descriptive, kebab-case | High |
| `CLAUDE.md` | `ai-assistant-guide.md` | Generic, descriptive | Medium |
| `DOCUMENTATION_INDEX.md` | `docs-index.md` | Shorter, kebab-case | High |
| `PROJECT_STRUCTURE.md` | `project-structure.md` | Consistent casing | Medium |
| **Configuration** ||||
| `NAMING_CONVENTIONS.md` | `naming-conventions.md` | Kebab-case | Medium |
| `MAVEN_VERSION_MANAGEMENT.md` | `maven-guide.md` | Shorter, clearer | Low |
| **Reports** ||||
| `ORGANIZATION_SUMMARY.md` | `reports/organization-summary.md` | Move to reports/, kebab-case | High |
| `PROJECT_CLEANUP_SUMMARY.md` | `reports/cleanup-summary.md` | Move to reports/, shorter | High |
| `QUICKWIN_COMPLETION_REPORT.md` | `reports/quickwin-report.md` | Move to reports/, shorter | High |
| `SESSION_SUMMARY_BINARY_ANALYSIS.md` | `reports/binary-analysis-session.md` | Move to reports/, clearer order | High |
| `CLEANUP_FINAL_REPORT.md` | `reports/cleanup-final.md` | Move to reports/, shorter | High |
| `VERSION_FIX_COMPLETE.md` | `reports/version-fix-complete.md` | Move to reports/, kebab-case | High |
| `VERSION_MANAGEMENT_COMPLETE.md` | `reports/version-management-complete.md` | Move to reports/, kebab-case | High |
| `VERSION_MANAGEMENT_STRATEGY.md` | `reports/version-management-strategy.md` | Move to reports/, kebab-case | High |
| **Improvements** ||||
| `IMPROVEMENTS.md` | `improvements.md` | Kebab-case | Low |
| `IMPROVEMENTS_QUICK_REFERENCE.md` | `improvements-quick-ref.md` | Shorter, kebab-case | Medium |
| `MCP_TOOLS_IMPROVEMENTS.md` | `mcp-tools-improvements.md` | Kebab-case | Medium |
| `GAME_EXE_IMPROVEMENTS.md` | `game-exe-improvements.md` | Kebab-case | Medium |

---

## 📂 Directory-Specific Naming

### docs/ Directory

**Pattern**: `<topic>-<type>.md`

Examples:
- `api-reference.md` ✅
- `development-guide.md` ✅
- `troubleshooting-guide.md` ✅
- `error-codes.md` ✅

### docs/guides/ Directory

**Pattern**: `<subject>-guide.md` or `<subject>-<action>.md`

Examples:
- `ordinal-restoration-guide.md` ✅
- `structure-discovery-guide.md` ✅
- `register-reuse-fix.md` ✅

### docs/analysis/ Directory

**Pattern**: `<binary-name>-analysis.md`

Examples:
- `game-exe-analysis.md` ✅
- `d2client-analysis.md` ✅
- `storm-library-analysis.md` ✅

### docs/reports/ Directory

**Pattern**: `<topic>-report.md` or `<topic>-<date>.md`

Examples:
- `cleanup-report.md` ✅
- `performance-report-2025-11.md` ✅
- `organization-summary.md` ✅

---

## 🎯 Implementation Plan

### Phase 1: Critical Renames (High Priority)

**Impact**: Improves discoverability and consistency

```bash
# Move reports to docs/reports/
mv ORGANIZATION_SUMMARY.md docs/reports/organization-summary.md
mv PROJECT_CLEANUP_SUMMARY.md docs/reports/cleanup-summary.md
mv QUICKWIN_COMPLETION_REPORT.md docs/reports/quickwin-report.md
mv SESSION_SUMMARY_BINARY_ANALYSIS.md docs/reports/binary-analysis-session.md
mv CLEANUP_FINAL_REPORT.md docs/reports/cleanup-final.md
mv VERSION_FIX_COMPLETE.md docs/reports/version-fix-complete.md
mv VERSION_MANAGEMENT_COMPLETE.md docs/reports/version-management-complete.md
mv VERSION_MANAGEMENT_STRATEGY.md docs/reports/version-management-strategy.md

# Rename core files
mv START_HERE.md getting-started.md
mv DOCUMENTATION_INDEX.md docs-index.md
```

### Phase 2: Consistency Updates (Medium Priority)

**Impact**: Consistent naming across project

```bash
# Rename to kebab-case
mv CLAUDE.md ai-assistant-guide.md
mv PROJECT_STRUCTURE.md project-structure.md
mv NAMING_CONVENTIONS.md naming-conventions.md
mv IMPROVEMENTS_QUICK_REFERENCE.md improvements-quick-ref.md
mv MCP_TOOLS_IMPROVEMENTS.md mcp-tools-improvements.md
mv GAME_EXE_IMPROVEMENTS.md game-exe-improvements.md
```

### Phase 3: Reference Updates (Required after renaming)

**Action items**:
1. Update all internal links in markdown files
2. Update references in code/scripts
3. Update VSCode settings
4. Update .gitignore patterns
5. Update CI/CD paths

---

## 📝 Naming Rules by File Type

### Documentation Files

| Type | Pattern | Example |
|------|---------|---------|
| Guide | `<topic>-guide.md` | `installation-guide.md` |
| Reference | `<topic>-reference.md` | `api-reference.md` |
| Tutorial | `<topic>-tutorial.md` | `quickstart-tutorial.md` |
| Index | `<category>-index.md` | `docs-index.md` |

### Analysis Files

| Type | Pattern | Example |
|------|---------|---------|
| Binary | `<name>-analysis.md` | `game-exe-analysis.md` |
| Component | `<name>-<component>.md` | `d2client-ui-analysis.md` |
| Overview | `<topic>-overview.md` | `architecture-overview.md` |

### Report Files

| Type | Pattern | Example |
|------|---------|---------|
| Status | `<topic>-status.md` | `project-status.md` |
| Summary | `<topic>-summary.md` | `cleanup-summary.md` |
| Report | `<topic>-report.md` | `performance-report.md` |
| Dated | `<topic>-YYYY-MM.md` | `milestone-2025-11.md` |

### Configuration Files

| Type | Pattern | Example |
|------|---------|---------|
| Standards | `<topic>-conventions.md` | `naming-conventions.md` |
| Config Guide | `<tool>-guide.md` | `maven-guide.md` |
| Setup | `<topic>-setup.md` | `environment-setup.md` |

---

## ✅ Checklist for New Files

Before creating a new markdown file:

- [ ] Use kebab-case (lowercase with hyphens)
- [ ] Keep name under 40 characters
- [ ] Make it descriptive and searchable
- [ ] Follow directory-specific patterns
- [ ] Avoid abbreviations unless widely known
- [ ] Check for similar existing files
- [ ] Add to appropriate index file
- [ ] Use `.md` extension (not `.markdown`)

---

## 🔍 Special Cases

### When to Use UPPERCASE

**ONLY for these standard files**:
- `README.md` - Primary documentation entry
- `CHANGELOG.md` - Version history (Keep-a-Changelog standard)
- `CONTRIBUTING.md` - Contribution guidelines (GitHub standard)
- `LICENSE` or `LICENSE.md` - Legal license file
- `CODE_OF_CONDUCT.md` - Community standards (GitHub standard)
- `SECURITY.md` - Security policies (GitHub standard)

### When to Use Underscores

**AVOID** underscores in markdown files. Use hyphens instead.

Exception: Generated files that must match tool conventions.

### When to Use Numbers

**Prefix with zero** for ordering:
- ✅ `01-introduction.md`
- ✅ `02-installation.md`
- ✅ `03-usage.md`

**Date suffixes**:
- ✅ `report-2025-11-06.md`
- ❌ `report-11-6-2025.md`

---

## 📊 Impact Analysis

### Benefits of Standardization

1. **Improved Discoverability**
- Files easier to find with predictable patterns
- Better IDE autocomplete

2. **Consistency**
- Uniform appearance in file listings
- Professional presentation

3. **Maintainability**
- Clear naming conventions for contributors
- Reduced confusion

4. **SEO/Search**
- Better search results with descriptive names
- Easier to remember and share

### Migration Effort

| Phase | Files Affected | Effort | Risk |
|-------|----------------|--------|------|
| Phase 1 | 8 reports | 1-2 hours | Low |
| Phase 2 | 6 core files | 2-3 hours | Medium |
| Phase 3 | Link updates | 3-4 hours | Medium |
| **Total** | **14 files** | **6-9 hours** | **Low-Medium** |

---

## 🚀 Migration Strategy

### Safe Renaming Process

1. **Create branch**
```bash
git checkout -b standardize-markdown-names
```

2. **Rename files** (preserves history)
```bash
git mv OLD_NAME.md new-name.md
```

3. **Update references**
- Search and replace in all markdown files
- Update scripts and code references
- Update documentation indexes

4. **Test**
- Verify all links work
- Check CI/CD pipelines
- Test local builds

5. **Commit and PR**
```bash
git commit -m "refactor: standardize markdown file naming conventions"
```

---

## 📚 References

- [GitHub Documentation Standards](https://docs.github.com/en/communities)
- [Keep a Changelog](https://keepachangelog.com/)
- [Semantic File Names](https://semver.org/)
- [Markdown Guide](https://www.markdownguide.org/basic-syntax/)

---

**Last Updated**: November 6, 2025
**Version**: 1.0.0
**Status**: Proposed Standard
Loading