Как использовать rp c expose во Фриде? - PullRequest
1 голос
/ 04 марта 2020

Я пытался использовать rp c .exports.dispose, но он не работает. Вот код, который я пробовал:

import frida
import sys

device = frida.get_local_device()
session = device.attach('simple')
script = session.create_script("""
    rpc.exports.dispose = function() {
        console.log('dispose');
    };
""")
script.load()
sys.stdin.read()

В соответствии с документацией * удаление 1005 * должно быть выполнено до завершения подключенного процесса или выгрузки скрипта.

I прекращено "просто msgstr "обработать несколькими способами (нажмите Ctrl + C, запустите" kill -9 ", запустите" kill "). Но я не мог видеть утилизировать журнал. Я использую Ubuntu. Можете ли вы дать мне знать, что не так в моем коде? Спасибо!

1 Ответ

0 голосов
/ 04 марта 2020

По моему мнению, полагаться на код, который выполняется в процессе во время его завершения, - плохая идея. Слишком много вещей может go ошибаться, и код не выполняется.

Гораздо лучший способ - зарегистрировать обработчик detached на стороне Python:

def on_detached():
    print("on_detached")

def on_detached_with_reason(reason):
    print("on_detached_with_reason:", reason)

def on_detached_with_varargs(*args):
    print("on_detached_with_varargs:", args)

session = frida.attach("simple")
print("attached")
session.on('detached', on_detached)
session.on('detached', on_detached_with_reason)
session.on('detached', on_detached_with_varargs)
...