Allows you to partly emulate an Android native library.
This is an educational project to learn more about the ELF file format and Unicorn.
- Emulation of the JNI Invocation API so
JNI_OnLoadcan be called properly.
- Emulation of native memory for malloc / memcpy.
- Emulation of syscalls (SVC #0) instruction.
- Hooking through the symbol table.
- All JavaVM, JNIEnv and hooked functions are handled by python.
- Enable VFP support.
- Add init_array support depends on Relocation information.
- Add support of modify object value by reference id.
- Implement getcpu() syscall
- Implement set_byte_array_region
- Register Function failed would't raise an error(beacuse most jni functions are not used.)
- samples:添加抖音 X-Gorgen 调用实例
- 中文 README
In the future this will be possible through pypi.
Make sure you are using python 3.7.
- Clone the repository
pip install -r requirements.txt
If you have trouble getting the
keystone-enginedependency on Windows (as I did):
- Improve file descriptors in
vfs/file_system.pyso they are re-useable.
- Add a way for the VirtualFileSystem to give back dynamic files, such as
- Library consumers must be able to easily rebuild the needed Java classes for a native library, which are used by the native library through the JNIEnv.
Classes Objects Methods Native methods
All resources used while developing AndroidNativeEmu.