0

我尝试使用 rpc.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()

根据文档dispose 应该在挂钩进程终止或卸载脚本之前执行。

我通过几种方式终止了“简单”进程(单击 Ctrl+C,运行“kill -9”,运行“kill”)。但我看不到处置日志。我正在使用 Ubuntu。你能告诉我我的代码有什么问题吗?谢谢!

4

1 回答 1

0

在我看来,依赖在进程终止时执行的代码是一个坏主意。太多的事情可能会出错,代码不会被执行。

更好的方法是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)
于 2020-03-04T14:58:39.700 回答