首页
社区
课程
招聘
[求助]踩坑!Frida的recv()只能收到第一条message
发表于: 2018-9-19 09:31 6466

[求助]踩坑!Frida的recv()只能收到第一条message

2018-9-19 09:31
6466
中文版:
recv([type, ]callback): 注册一个回调,当下次有消息到来的时候会收到回调消息,可选参数 type 相当于一个过滤器,表示只接收这种类型的消息。需要注意的一点是, 这个消息回调是一次性的, 收到一个消息之后,如果需要继续接收消息,那就需要重新调用一个 recv
原文:
The recv() method itself is async (non-blocking). The registered callback (onMessage) will receive exactly one message. To receive the next message, the callback must be reregistered with recv().

我的代码

recv('invoke', handleMessage);
//回调 message
function handleMessage(message) {
    message = message['data'];
    send('传入参数 ' + message['app']);
}

怎么写才能收到下一条消息呢 我怎么测试都只能获取一条  这样很影响通信呀 

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 33
活跃值: (322)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
也尝试过如下代码 同样无效 
var op = recv('invoke', function (message) {
    handleMessage(message)
});
op.wait();
2018-9-19 09:35
0
雪    币: 33
活跃值: (322)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
已解决
recv('invoke', handleMessage);
//回调 message
function handleMessage(message) {
    message = message['data'];
    send('传入参数 ' + message['app']);
    recv('invoke', handleMessage);  //THIS IS REREGISTER
}

大大的中文翻译有一点点不准确 
the callback must be reregistered with recv().
指的是重新注册recv的回调函数 而不是重新调用recv()
2018-9-19 13:54
0
雪    币: 18
活跃值: (956)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
也遇到这个坑,感谢
2021-12-27 18:35
0
游客
登录 | 注册 方可回帖
返回
//