SaaSHub helps you find the best software and product alternatives Learn more →
Top 23 Java Reverse Engineering Projects
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
-
if you want to an online java decompiler for a quick analysis, I recommend https://slicer.run/, it has a sleek UI and provides support for a variety of decompilers (including the likes of Vineflower, CFR, JASM, Procyon). For more in-depth analysis, https://github.com/Col-E/Recaf is probably my first choice
-
-
-
Project mention: Show HN: Ghidra MCP Server – 110 tools for AI-assisted reverse engineering | news.ycombinator.com | 2026-02-03
What does your function-hashing system offer over ghidra's built in FunctionID, or the bindiff plugin[0]?
[0] https://github.com/google/bindiff
-
ghidra-mcp
Ghidra MCP Server — 200+ MCP tools for AI-powered reverse engineering. GUI plugin + headless server, lazy tool loading, convention enforcement, batch operations, Ghidra Server integration, and Docker deployment.
Project mention: MCP's Dark Secret: 5 Hidden Patterns Nobody Teaches You About Context Window Optimization | dev.to | 2026-04-30# Lazy-loading MCP: Only activate server when actually needed # Inspired by GhidraMCP's lazy tool loading pattern # https://github.com/bethington/ghidra-mcp class LazyMCPLoader: def __init__(self, server_registry: dict): # Server registry stores metadata, NOT active connections self.server_registry = server_registry self.active_servers = {} async def invoke(self, tool_name: str, params: dict): server_name = self._resolve_server(tool_name) # Lazy initialization — server starts only on first use if server_name not in self.active_servers: print(f"🔌 Lazy-loading MCP server: {server_name}") self.active_servers[server_name] = await self._start_server( self.server_registry[server_name] ) return await self.active_servers[server_name].invoke(tool_name, params) async def invoke_batch(self, tools: list): """Pre-warm servers for tools likely to be used together""" servers_needed = {self._resolve_server(t['tool']) for t in tools} for srv in servers_needed: if srv not in self.active_servers: self.active_servers[srv] = await self._start_server( self.server_registry[srv] ) # Now all servers are pre-warmed for parallel execution return await asyncio.gather(*[ self.active_servers[self._resolve_server(t['tool'])].invoke(t['tool'], t['params']) for t in tools ]) # Register servers — this is ALL that loads into context at startup # 500 bytes vs 50,000 bytes of tool definitions SERVER_REGISTRY = { "github": {"host": "localhost", "port": 3100, "tools": 23}, "filesystem": {"host": "localhost", "port": 3101, "tools": 8}, "ghidra": {"host": "localhost", "port": 3102, "tools": 110}, # Lazy loaded }
-
-
-
-
-
skidfuscator-java-obfuscator
Public production-ready obfuscator using the MapleIR framework designed by cts
-
Also worth mentioning this great MCP integration https://github.com/cyberkaida/reverse-engineering-assistant
-
-
Project mention: We hid backdoors in ~40MB binaries and asked AI and Ghidra to find them | news.ycombinator.com | 2026-02-22
It seems to be an active space, vide a recent MCP server (https://news.ycombinator.com/item?id=46882389). I you haven't tried, recommend a lot posting it as Show HN.
I tried a few approaches - https://github.com/jtang613/GhidrAssistMCP (was the harderst to set) Ghidra analyzeHeadless (GPT-5.2-Codex worked with it well!) and PyGhidra (my go-to). Did you try to see which works the best?
I mean, very likely (especially with an explicit README for AI, https://github.com/akiselev/ghidra-cli/blob/master/.claude/s...) your approach might be more convenient to use with AI agents.
-
-
-
Severed-Chains
Legend of Dragoon decompiled, reverse engineered, and ported to PC/Mac/Linux/Steam Deck
-
-
-
-
-
Java Reverse Engineering discussion
Java Reverse Engineering related posts
-
Agentic, fully-automated reverse engineering
-
We hid backdoors in ~40MB binaries and asked AI and Ghidra to find them
-
Ghidra by NSA
-
Show HN: Ghidra MCP Server – 110 tools for AI-assisted reverse engineering
-
Reverse engineering River Raid with Claude, Ghidra, and MCP
-
Ask HN: What did you find out or explore today?
-
Why is the Gmail app 700 MB?
-
A note from our sponsor - SaaSHub
www.saashub.com | 16 Jun 2026
Index
What are some of the best open-source Reverse Engineering projects in Java? This list will help you:
| # | Project | Stars |
|---|---|---|
| 1 | ghidra | 69,544 |
| 2 | Apktool | 24,746 |
| 3 | Recaf | 7,221 |
| 4 | simplify | 4,637 |
| 5 | fernflower | 4,304 |
| 6 | bindiff | 3,073 |
| 7 | ghidra-mcp | 2,401 |
| 8 | BinAbsInspector | 1,667 |
| 9 | OpenPods | 1,224 |
| 10 | cp-ddd-framework | 1,156 |
| 11 | JByteMod-Beta | 862 |
| 12 | skidfuscator-java-obfuscator | 766 |
| 13 | reverse-engineering-assistant | 744 |
| 14 | GhidrAssist | 666 |
| 15 | GhidrAssistMCP | 639 |
| 16 | jpsxdec | 580 |
| 17 | Deobfuscator | 516 |
| 18 | Severed-Chains | 476 |
| 19 | allsafe-android | 397 |
| 20 | efiSeek | 394 |
| 21 | GhidRust | 366 |
| 22 | Ghidra-Switch-Loader | 359 |
| 23 | SkidSuite | 355 |