A feature-rich markdown editor plugin for Ghidra that supports collections of notes without leaving Ghidra.
I wrote this plugin to solve the problem of juggling tabs to navigate between Ghidra and Obsidian when reverse engineering a binary and writing notes.
The result is a nice Markdown Notepad window that can be placed in a convenient space in Ghidra so notes can be taken without needing Obsidian open.
And for the light-mode sadists:
My favourite features:
- Using
[0x1234]syntax to make addresses clickable in the preview (makes Ghidra go to that address) - Using
{0x5678}syntax to create an address link that is previewed as the function name at that address (no more fear of inconsistent function names for the same function in notes!) - Ghidra theme integration (syntax highlighting and preview colours match the selected Ghidra theme)
- Auto-opening of same collection on restart
- Search all documents, easy to flick through results with arrow keys
- Image imports (not as simple as Obsidian but works well)
- Built into Ghidra so no juggling Obsidian window around
- Easy file organisation in the file tree on the left of the window
- Easy to navigate between collections of notes if needed
- Contents listing for easy navigation within long markdown notes
More specific:
- Document Management
- Create and manage collections of markdown documents
- Hierarchical directory structure for organizing notes
- Drag-and-drop file organization
- File and directory renaming/deletion
- Unsaved changes indication
- Editor Features
- Markdown syntax highlighting
- Real-time preview with split view
- Undo/redo functionality
- Document and collection-wide search
- Support for tables
- Contents listing for easy navigation and overview
- Zoom support
- Easy navigation to previous notes with back/forward buttons
- Image Support
- Drag-and-drop image importing
- Clipboard paste support for images
- Navigation and Integration
- Program address linking (
[0x1234]syntax for direct navigation) - Function address linking (
{0x5678}syntax for function name preview + address navigation) - Clickable web links in preview
- Keyboard shortcuts for all major operations
- Integration with the Ghidra theming system
- Program address linking (
- Search Capabilities
- Document search
- Collection-wide search with context preview
- Case-sensitive search option
- Results navigation
| Action | Shortcut |
|---|---|
| Open Collection | Ctrl+O |
| Create New Collection | Ctrl+Shift+N |
| Save Document | Ctrl+S |
| Undo | Ctrl+Z |
| Redo | Ctrl+Y |
| New Document | Ctrl+N |
| New Directory | Ctrl+Shift+D |
| Import Image | Ctrl+I |
| Document Search | Ctrl+F |
| Collection Search | Ctrl+Shift+F |
| Zoom In | Ctrl+Equals |
| Zoom Out | Ctrl+Minus |
| Go Back | Alt+Left |
| Go Forwards | Alt+Right |
- Ghidra 11.2.1 installed
The plugin is built on the following key components:
- RSyntaxTextArea for syntax highlighting
- CommonMark for markdown parsing
- Ghidra's docking framework for UI integration
- Java NIO for file operations
- Download the
.zipof the plugin - Open Ghidra, and on the main window go to
File->Install Extensions - Click the green '+' on the rop right, and select the downloaded
.zipfile - Restart Ghidra to install the plugin
- Open Ghidra, you should get a prompt to configure the plugin, if so, select the tick box on the left to complete the installation
- Should now be available in
Window->Markdown Notepad(if not, next step) - If not available, will need manual configuring, go to
File->Configure - Now in the
Configure Toolmenu, click theConfigurein theMiscellaneoussection - Should see the
MarkdownNotepadPluginin the list, if so, make sure the first tick box in the row is ticked - Should now be all good to write some notes!


