Frida - ошибка собственного метода ловушки на android -Q - PullRequest
0 голосов
/ 22 марта 2020

У меня есть пример приложения с int add(int a,int b) в собственной библиотеке.

Я использую приведенный ниже код для перехвата метода add:

#!/usr/bin/env python3

import frida
import sys

package_name = "com.sample.hello"
apiname = "add"

def get_messages_from_js(message, data):
    if message['type'] == 'send':
        print(message['payload'])
    else:
        print(message)

def instrument_debugger_checks():
    hook_code = """
Interceptor.attach(Module.findExportByName(null, "%s"), {
    onEnter: function(args) {
        console.log("onEnter...");
        //send (Memory.readUtf8String (args [1]));     
    },
    onLeave: function(args) {
        console.log("onLeave...");
    }
});
"""%(apiname)
    return hook_code

process = frida.get_usb_device().attach(package_name)
script = process.create_script(instrument_debugger_checks())
script.on('message',get_messages_from_js)
script.load()
sys.stdin.read()

Я использую команду ниже чтобы получить имя функции так:

$ nm -D libnative2.so |grep add

0000000000082504 T _ZNSt6__ndk114__shared_count12__add_sharedEv
0000000000082574 T _ZNSt6__ndk119__shared_weak_count10__add_weakEv
000000000008255c T _ZNSt6__ndk119__shared_weak_count12__add_sharedEv
0000000000042d8c T add

Я перепробовал все эти имена, результат один и тот же.

Но когда я его запустил, я получил ошибку ниже:

{'type': 'error', 'description': 'Error: expected a pointer', 'stack': 'Error: expected a pointer\n    at frida/runtime/core.js:387\n    at /script1.js:9', 'fileName': 'frida/runtime/core.js', 'lineNumber': 387, 'columnNumber': 1}

Что не так с моим кодом?

...