1

TLDR フリーダを使用して、Android アプリで未使用のメソッドを呼び出し、その値を取得しようとしています。現在、スクリプトの出力に何も返されていません。

Android アプリのコード:

package securisec.com.methods;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public static String strings(){
        return "This is a string method";
    }

}

ご覧のとおり、stringsメソッドは使用されません。Frida を使用してこのメ​​ソッドを呼び出し、戻り値を取得できるようにしたいと考えています。

これは、動作していない私の python スクリプトです。

import frida
from time import sleep

call_back_message = ''

def on_message(message, payload):
    global call_back_message
    if message['type'] == 'send':
        call_back_message = message['payload']
        return call_back_message

def object_hooking(comName, className, method):
    process = frida.get_usb_device()
    pid = process.spawn([comName])
    process.resume(pid)
    sleep(1)
    js = """
            Java.perform(function()
            {
                var getVal = Java.use('%s.%s');
                console.log(getVal)
                var cons = getVal.$new();
                console.log(cons)
                var solution = cons.%s;
                var send_it = solution.toString();
                send(send_it);
            });""" % (comName, className, method)
    session = process.attach(pid)
    script = session.create_script(js)
    script.on('message', on_message)
    script.load()
    return call_back_message

print(object_hooking(
    comName='securisec.com.methods', 
    className='MainActivity',
    method='strings()'
))
4

1 に答える 1