unidbg
Allows you to emulate an Android native library, and an experimental iOS emulation.
This is an educational project to learn more about the ELF/MachO file format and ARM assembly.
Use it at your own risk !
License
- unidbg uses software libraries from Apache Software Foundation.
- unidbg developer Idea enterprise licenses are supported by Jetbrains.
- IntelliJ IDEA can be used to edit unidbg sources.
Simple tests under src/test directory
More tests
- unidbg-android/src/test/java/com/github/unidbg/android/QDReaderJni.java
- unidbg-android/src/test/java/com/anjuke/mobile/sign/SignUtil.java
Features
- Emulation of the JNI Invocation API so JNI_OnLoad can be called.
- Support JavaVM, JNIEnv.
- Emulation of syscalls instruction.
- Support ARM32 and ARM64.
- Inline hook, thanks to Dobby.
- Android import hook, thanks to xHook.
- iOS fishhook and substrate and whale hook.
- unicorn backend support simple console debugger, gdb stub, instruction trace, memory read/write trace.
- Support iOS objc and swift runtime.
- Support dynarmic fast backend.
- Support Apple M1 hypervisor, the fastest ARM64 backend.
- Support Linux KVM backend with Raspberry Pi B4.
Thanks
- unicorn
- dynarmic
- HookZz
- xHook
- AndroidNativeEmu
- usercorn
- keystone
- capstone
- idaemu
- jelf
- whale
- kaitai_struct
- fishhook
- runtime_class-dump
- mman-win32
One-time Donation
We accept donations via WeChatPay: