Fridaアーティファクトを使用してフックC / C ++メソッドを簡単に実装する

目的: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/

 

おすすめ

転載: www.cnblogs.com/roger-jc/p/12760801.html
おすすめ