Ghidra is a powerful reverse‑engineering platform from the NSA.
On Apple Silicon (M1, M2, M3, …) the official releases require a
Java runtime that is not pre‑installed, and setting up a clean
environment can be tedious.
This project bundles a recent OpenJDK and Ghidra into a single
Ghidra.app that behaves like a native macOS application.
All required resources are isolated inside the bundle, so you can
install the app in your Applications folder and run it with a
single click – no additional Java, no PATH tricks, no hidden
settings.
| Feature | Description |
|---|---|
| Self‑contained | The bundle contains a recent JDK (openjdk-22.0.1) and Ghidra (11.0.3). |
| Apple‑Silicon optimized | Runs natively on M1/M2/M3 devices. |
| No system changes | The JDK lives inside the app, so your system Java is untouched. |
| Easy installation | One command or a pre‑built binary. |
| User‑friendly UI | Launch the app from the Applications folder with a macOS‑style icon. |
| Progress bars & ASCII art | The installer shows a colorful progress bar while downloading and extracting. |
- macOS 12.3 or newer (M1, M2, M3, or later)
- Python 3.6+ (used only for the optional script)
- Internet connection for downloading the JDK and Ghidra
git clone https://github.com/ytisf/GhidraMacOS
cd GhidraMacOSpip install -r requirements.txtThe installer is pure Python and only needs
colorama,tqdm, andurllib. If you don’t want to use the script, skip this step.
python3 install_ghidra.pyThe script will:
- Download the latest OpenJDK and Ghidra releases.
- Extract them into a temporary folder.
- Build a
Ghidra.appbundle with all files in place. - Copy the bundle to
/Applications.
After the script finishes, you can launch Ghidra by double‑clicking the icon in the Applications folder.
If you prefer not to run the Python script, download the latest
pre‑built .app from the Releases page:
Drop the downloaded Ghidra.app into the Applications folder
and launch it as you would any other macOS app.
The installer is created with PyInstaller.
If you want to build a custom version (e.g., different JDK or Ghidra
release), clone the repo and run:
pyinstaller launcher.specThe launcher.spec file bundles the installer script and the icon
into a single executable. Adjust the spec file to change the
download URLs or add additional resources.
| Symptom | Likely Cause | Fix |
|---|---|---|
Installer fails with Permission denied |
The temporary directory is not writable | Run the script with sudo or change the temp directory path |
| Ghidra opens but crashes | Java version mismatch | Make sure the JDK in the bundle matches the Ghidra release |
| Missing icon | Icon not bundled | Verify the icon.icns is present in Ghidra.app/Contents/Resources/ |
python3: command not found |
Python not installed | Install Python 3.6+ from https://www.python.org or via Homebrew: brew install python |
This project is licensed under the MIT License.
See the LICENSE file for details.
- National Security Agency (NSA) – Ghidra reverse‑engineering platform
- Ryan Kurtz – Ghidra logo (Apache License 2.0).
- AppleScript template – inspired by yifanlu’s AppleScript work
- PyInstaller – packaging Python scripts into macOS apps
Feel free to open issues or submit pull requests.
Pull requests that:
- improve the installer script,
- add support for newer Ghidra releases,
- or add additional platforms (e.g., Windows/Mac ARM)
are welcome.