这个项目能做什么

unidbg 是一个基于 Java 的开源项目,旨在模拟 Android 原生库(ELF)和 iOS 二进制文件(Mach-O)。它主要用于移动应用的安全研究、逆向工程和动态分析。 主要功能包括: - **架构支持**:模拟 ARM32 和 ARM64 二进制代码。 - **多种后端**:支持 Unicorn、dynarmic、Apple M1 hypervisor(用于在 macOS 上快速模拟 ARM64)以及 Raspberry Pi 上的 Linux KVM。 - **AI 辅助调试(MCP)**:集成模型上下文协议(MCP),允许 AI 工具(如 Cursor)在模拟过程中动态检查寄存器、内存、反汇编、设置断点、跟踪指令并调用原生函数。 - **Hook 支持**:通过 Dobby 集成内联 hook,通过 xHook 实现 Android 导入 hook,并通过 fishhook、substrate 和 whale 实现 iOS hook。 - **JNI 模拟**:支持 JNI Invocation API、JavaVM 和 JNIEnv,允许执行 JNI_OnLoad。 - **内存泄漏检测**:跟踪客户机内存分配,并生成包含客户机 ARM 回溯和宿主 Java 堆栈跟踪的报告。 - **工作线程池**:提供线程安全的模拟器池,以减少并发任务处理期间的资源初始化开销。 - **调试与跟踪**:具备控制台调试器、GDB 存根、指令跟踪以及内存读写跟踪功能。