Here is a quick script to easily have an overview of JNI called by a function. It also provide a way to easily hook them
pip install frida-tools --user
npm install frida-compile -g
npm install frida-compile
Fill library name and function name in agent.js
library_name = "" // ex: libsqlite.so
function_name = "" // ex: JNI_OnLoad
Add the functions you want to hook or simply hook all in the hook_jni
function
/*
Here you can choose which function to hook
Either you hook all to have an overview of the function called
*/
jni.hook_all(jnienv_addr)
/*
Either you hook the one you want by precising what to do with it
*/
Interceptor.attach(jni.getJNIFunctionAdress(jnienv_addr,"FindClass"),{
onEnter: function(args){
console.log("env->FindClass(\"" + Memory.readCString(args[1]) + "\")")
}
})
Once you've filled all the previous informations, compile it with :
frida-compile agent.js -o _agent.js
And launch it :
frida -U -l _agent.js --no-pause -f <your package_name>
https://www.aperikube.fr/docs/aperictf_2019/my_backdoored_gallery/
Feel free to contact me on Twitter : Areizen
or by email at : [email protected]