About this project
unidbg is an open-source Java-based project designed to emulate Android native libraries (ELF) and iOS binaries (Mach-O). It is primarily used for security research, reverse engineering, and dynamic analysis of mobile applications.
Key capabilities include:
- **Architecture Support**: Emulates ARM32 and ARM64 binary code.
- **Multiple Backends**: Supports Unicorn, dynarmic, Apple M1 hypervisor (for fast ARM64 emulation on macOS), and Linux KVM on Raspberry Pi.
- **AI-Assisted Debugging (MCP)**: Integrates the Model Context Protocol (MCP) to allow AI tools (like Cursor) to dynamically inspect registers, memory, disassembly, set breakpoints, trace instructions, and call native functions during emulation.
- **Hooking Support**: Integrates inline hooking via Dobby, Android import hooking via xHook, and iOS hooking via fishhook, substrate, and whale.
- **JNI Emulation**: Supports the JNI Invocation API, JavaVM, and JNIEnv, allowing the execution of JNI_OnLoad.
- **Memory Leak Detection**: Tracks guest memory allocations and generates reports with both guest ARM backtraces and host Java stack traces.
- **Worker Pool**: Offers a thread-safe emulator pool to reduce resource initialization overhead during concurrent task processing.
- **Debugging & Tracing**: Features a console debugger, GDB stub, instruction tracing, and memory read/write tracing.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.