UniDBG
Allows you to emulate an Android native library, and an experimental iOS emulation
What is UniDBG?
UniDBG is a Model Context Protocol (MCP) server that allows AI assistants like Claude, Cursor, and VS Code to allows you to emulate an android native library, and an experimental ios emulation
Allows you to emulate an Android native library, and an experimental iOS emulation
This server falls under the Security category on MCPgee, the world's largest MCP server directory with 33,000+ servers.
Features
- Allows you to emulate an Android native library, and an expe
Use Cases
Maintainer
Works with
Installation
Manual Installation
npx unidbgConfiguration
Configuration Details
claude_desktop_config.json
Performance
Response Metrics
Resource Usage
How to Set Up and Use UniDBG
UniDBG is an open-source Java-based Android (and experimental iOS) native library emulator that lets you run ARM32 and ARM64 binaries on your development machine without a physical device or emulator. It fully implements the JNI Invocation API so Android .so files can be called as if running inside a real ART runtime, and it includes an MCP integration that allows AI tools like Cursor to assist with debugging by reading registers, disassembling instructions, inspecting memory, setting breakpoints, and invoking native functions interactively. Security researchers use it to extract cryptographic keys, analyze obfuscated native code, and reverse-engineer mobile app signing algorithms without running the actual Android OS.
Prerequisites
- Java Development Kit (JDK) 8 or 11 installed (JDK 8 is most widely tested)
- Maven 3.6+ or Gradle for building the project from source
- Git to clone the repository
- Basic familiarity with ARM assembly and the Android NDK / JNI layer
- Cursor, Claude Code, or another MCP-compatible IDE for the AI-assisted debugging integration
Clone the UniDBG repository
Clone the project and change into the directory. The repository contains the core emulator and pre-built example projects.
git clone https://github.com/zhkl0228/unidbg.git
cd unidbgBuild the project with Maven
Build all modules. The first build downloads dependencies from Maven Central and may take a few minutes.
mvn clean package -DskipTestsCreate a test harness for your target library
Create a Java class that extends AbstractJni, loads your .so file via emulator.loadLibrary(), and calls the target function. See the unidbg-android/src/test/java/ directory for examples such as TTEncrypt and SignUtil.
Run the emulator and enter the debugger
Execute your test class. To activate the interactive debugger at a specific point, call emulator.attach() in your Java code before the function call you want to inspect.
mvn test -pl unidbg-android -Dtest=YourTestClassActivate the MCP server for AI-assisted debugging
At the UniDBG interactive debugger console prompt, type 'mcp' to start the MCP server. This allows Cursor or another MCP client to connect and use register inspection, memory read/write, disassembly, and step tools.
mcpConnect your MCP client to the debug session
With the MCP server active inside the debugger, configure your MCP client to connect to the local UniDBG MCP endpoint. Cursor can then inspect memory and registers and help you understand what the native code is doing.
UniDBG Examples
Client configuration
UniDBG's MCP server is activated interactively from the debugger console. Configure your Cursor or Claude Code client to connect to the local MCP server that UniDBG exposes when 'mcp' is typed in the debugger.
{
"mcpServers": {
"unidbg": {
"command": "npx",
"args": ["unidbg"]
}
}
}Example debugger and MCP interactions
After connecting to the UniDBG MCP server, use these prompts to drive the debugging session with AI assistance.
- "Show me the current values of all CPU registers."
- "Disassemble the next 20 instructions from the current program counter."
- "Read 64 bytes of memory at address 0x400000 and interpret it as a string."
- "Set a breakpoint at symbol 'Java_com_example_App_sign' and continue execution."
- "Call the native function 'calcKey' with arguments 0x1 and 0xDEADBEEF and show me the return value."Troubleshooting UniDBG
UnsatisfiedLinkError when loading the target .so file
UniDBG emulates the Android runtime but requires that all native dependencies of your .so are also loaded. Add missing .so files (like libssl.so, libcrypto.so) using emulator.loadLibrary() before loading your target library. Check the unidbg output for which symbol is unresolved.
JNI calls return null or throw NullPointerException
Your test class must implement the AbstractJni callbacks for any Java methods the native code calls back into. Check the error log to find which Java method is being called and add a matching implementation in your test harness.
Build fails with 'Could not resolve dependencies' errors
Check your Maven settings for proxy configuration if behind a corporate firewall. Alternatively, try building offline after an initial successful dependency download: mvn package -DskipTests -o. Ensure you are using JDK 8 or 11 — newer JDK versions (17+) may have compatibility issues.
Frequently Asked Questions about UniDBG
What is UniDBG?
UniDBG is a Model Context Protocol (MCP) server that allows you to emulate an android native library, and an experimental ios emulation It connects AI assistants to external tools and data sources through a standardized interface.
How do I install UniDBG?
Follow the installation instructions on the UniDBG GitHub repository. Clone the repo, install dependencies, and add the server config to your AI client.
Which AI clients work with UniDBG?
UniDBG works with all major MCP-compatible AI clients including Claude Desktop, Claude Code, Cursor, VS Code (GitHub Copilot), Windsurf, and Cline.
Is UniDBG free to use?
Yes, UniDBG is open source and available under the Apache-2.0 license. You can use it freely in both personal and commercial projects.
UniDBG Alternatives — Similar Security Servers
Looking for alternatives to UniDBG? Here are other popular security servers you can use with Claude, Cursor, and VS Code.
Casdoor
★ 13.6kAn open-source Agent-first Identity and Access Management (IAM) /LLM MCP & agent gateway and auth server with web UI supporting OpenClaw, MCP, OAuth, OIDC, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA, Face ID, Google Workspace, Azure AD
ghidraMCP
★ 9.0kAn Model Context Protocol server that enables LLMs to autonomously reverse engineer applications by exposing Ghidra's decompilation and analysis tools. It allows AI agents to list code structures, rename methods, and analyze binaries directly through
HexStrike AI
★ 8.9kHexStrike AI MCP Agents is an advanced MCP server that lets AI agents (Claude, GPT, Copilot, etc.) autonomously run 150+ cybersecurity tools for automated pentesting, vulnerability discovery, bug bounty automation, and security research. Seamlessly b
IDA Pro MCP
★ 8.7kEnables AI-assisted reverse engineering in IDA Pro by providing tools to analyze binaries, decompile functions, manage comments, search patterns, and interact with the IDA database through natural language.
Anthropic Cybersecurity Skills
★ 6.6k754 structured cybersecurity skills for AI agents · Mapped to 5 frameworks: MITRE ATT&CK, NIST CSF 2.0, MITRE ATLAS, D3FEND & NIST AI RMF · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI & 20+ platform
Hooker
★ 5.1k🔥🔥 hooker is a Frida-based reverse engineering toolkit for Android. It offers a user-friendly CLI, universal scripts, auto hook generation, memory roaming to detect activities/services, one-click SOCKS5 proxy setup, Frida JustTrustMe, and BoringSSL u
Browse More Security MCP Servers
Explore all security servers available in the MCPgee directory. Each server includes setup guides for Claude, Cursor, and VS Code.
Set Up UniDBG in Your Editor
Choose your AI client for step-by-step setup instructions.
Quick Config Preview
Add this to your claude_desktop_config.json or .cursor/mcp.json
Ready to use UniDBG?
Browse our complete directory of 33,000+ MCP servers, read setup guides for your editor, and start building with the Model Context Protocol.