2Y2s1mple / jni_helper

Find JNI function signatures in APK and apply to reverse tools.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

JNI Helper

CI

Find JNI function signatures in APK and apply to reverse tools.

Basic Usage

  1. Use extract_jni.py to generate signature.json
  2. Load signature.json into Ghidra/IDA/Radare2

extract_jni.py

extract

Install dependences:

pip3 install -r requirements.txt

Usage:

$ ./extract_jni.py -h
usage: extract_jni.py [-h] [-o OUTFILE] apk

positional arguments:
  apk         /path/to/apk

optional arguments:
  -h, --help  show this help message and exit
  -o OUTFILE  save JNI methods as formatted json file

Ghidra

See Ghidra

Before After
g1 g2

IDA

See IDA

Before After
i1 i2

Radare2

WIP, see Radare2

Demo

Tested with demo APK: app-debug.apk

TODO

  • support both C/C++ JNI functions
  • support overloaded JNI functions
  • remove Jadx dependence, all in Python
  • support env->RegisterNatives JNI functions

LINKS

About

Find JNI function signatures in APK and apply to reverse tools.


Languages

Language:C++ 88.7%Language:Python 7.5%Language:C 3.7%Language:Makefile 0.1%