目的:fridaフックのネイティブメソッドを介して、対応するメソッドのパラメーターを取得するには:
C ++コード:
extern " C " JNIEXPORT JSTRING JNICALL Java_os_sdk_fridademo_MainActivity_stringFromJNI( JNIEnvの * ENV、 jオブジェクト/ * この* / ){ のstd :: 文字列ハロー= " こんにちはCから++ " ; const char * key = " king " ; jsb_set_key(key); リターン env-> NewStringUTF(hello.c_str()); }
コンパイルが完了したら、デバイスで実行します。ここで、青いスタック仮想マシンを使用します。
idaで対応するsoライブラリを開き、エクスポートされたメソッド名を見つけます。
frida jsスクリプトを記述:frida_native.js
見つかったメソッド名を下の赤い部分に入れます。
setImmediate(function (){ Interceptor.attach(Module.findExportByName( "libnative-lib.so"、 " _Z11jsb_set_keyPKc " )、{ onEnter:function (args){ send( "open called!args [0]"、Memory.readByteArray (args [0]、256 )); }、 onLeave:function (retval){ } }) });
対応するPythonスクリプトを記述します:load_native.py
import frida、sys、time def on_msg(msg、data): print (msg) print (data) device = frida.get_device(" emulator-5554 " ) #pid = device.spawn(["packageName"]) #デバイス。 resume(pid) time.sleep(1 ) session = device.attach(" packageName " ) with open(" frida_native.js " )as f: script = session.create_script(f.read()) script.on(" message " 、on_msg) script.load() sys.stdin.read()
実行した後
簡単にできます。
アムウェイウェーブ入門チュートリアル:
Androidアプリケーションのセキュリティ調査:https : //github.com/r0ysue/AndroidSecurityStudy
公式ドキュメント:https : //frida.re/docs/javascript-api/