unidbg

Allows you to emulate an Android ARM32 and/or ARM64 native library, and an experimental iOS ARM32 emulation

Github stars Tracking Chart

unidbg

Allows you to emulate an Android ARM32 and/or ARM64 native library, and an experimental iOS ARM32 emulation.

This is an educational project to learn more about the ELF file format and ARM assembly.

License

Usage

VM options: -Djava.library.path=prebuilt/os -Djna.library.path=prebuilt/os
Where os may: linux64, win32, win64, osx64

Simple tests under src/test directory





More tests

Features

  • Emulation of the JNI Invocation API so JNI_OnLoad can be called.
  • Support JavaVM, JNIEnv.
  • Emulation of syscalls instruction.
  • Support ARM32 and ARM64 bit ELF.
  • Inline hook, thanks to HookZz.
  • Import hook, thanks to xHook.
  • Support simple debugger, gdb stub, instruction trace, memory read/write trace.

TODO

  • Working iOS emulation.
  • Working iOS objc.

Thanks

Main metrics

Overview
Name With Ownerzhkl0228/unidbg
Primary LanguageJava
Program languageShell (Language Count: 12)
Platform
License:Apache License 2.0
所有者活动
Created At2019-02-26 09:32:15
Pushed At2025-06-10 08:16:02
Last Commit At2025-06-10 16:15:55
Release Count15
Last Release Namev0.9.8 (Posted on )
First Release Namev0.3.0 (Posted on )
用户参与
Stargazers Count4.4k
Watchers Count105
Fork Count1k
Commits Count1.7k
Has Issues Enabled
Issues Count654
Issue Open Count389
Pull Requests Count32
Pull Requests Open Count9
Pull Requests Close Count30
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private