How to load jnitrace-engine scripts when running jnitrace
shp7724 opened this issue · 2 comments
Hello,
I've read through the readme files, but I'm still not sure how to load jnitrace-engine scripts when running jnitrace.
(I'm quite new to frida and jnitrace.)
Initially I thought the jnitrace-engine script would work in the same way as frida scripts, so I tried
jnitrace -l libnative-lib.so com.example.myapplication -a path/to/jnitrace-engine-script.js
but it didn't seem to work. (where the content of jnitrace-engine-script.js is exactly same as the simple usage example in the docs)
Could you give some more details about this?
Thank you :)
Hi,
Thanks for your question. jnitrace cannot run jnitrace-engine scripts, jnitrace is just one simple use case of jnitrace-engine.
jnitrace-engine is a npm library that allows you to call methods to make tracing the JNI easier. For example you can write a small script that traces the FindClass method and writes a message to a file every time that method is called. jnitrace-engine gives you the flexibility to do what you want in JS code, whenever a JNI function is called.
jnitrace is a project that uses jnitrace-engine. All it does is use that API and whenever a function is called, logs it out to the screen or to a JSON file. jnitrace does not run jnitrace-engine scripts. You need to run jnitrace-engine scripts using frida -l.
You can see this is how jnitrace uses jnitrace-engine: https://github.com/chame1eon/jnitrace/blob/99ddca8c983c01a5e3c721a0c127251e0f44bb7e/jnitrace/src/main.ts
If you do want to write your own scripts using jnitrace-engine, you need to use this template that oleavr developed for Frida. It is great I used it myself for building these projects:
https://github.com/oleavr/frida-agent-example
Within the package.json file you can include jnitrace-engine and once the project has built you can run it with Frida.
Hope that helps. Let me know if you have any other questions.
Thanks
Closing as not heard a response in over a month.