文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
消息发送
- 在这篇教程里,我们来讲述如何从目标进程发送消息到主控端以及如何反向发消息。
环境准备
- 创建文件 hello.c
- 使用如下命令编译:
- 然后启动程序,并记录下函数 f() 的地址(在这个例子中是 0x400544 ):
从目标进程中发消息
- 在下面的这个例子中,脚本从目标进程中给 Python 主控端发回了一条消息,理论上你可以发送任何可以序列化成 JSON 的任何 JavaScript 值。
- 创建文件 send.py ,大致内容如下:
- 使用如下命令执行脚本:
- 正常情况下,应该能看到如下的输出:
- 从上面的结果可以知道, send(1337) 这段 JavaScript 代码已经在 hello 这个进程中执行了,可以使用 Ctrl + D 来终止脚本执行。
处理 JavaScript 中的运行时错误
- 如果我们写的 JavaScript 脚本抛出了异常,这个异常就会被从目标进程发送到 Python 主控端。比如,我们把 send(1337) 改成 send(a) (未定义变量 a) ,Python 主控端就会收到下面的错误信息:
- {u'type': u'error', u'description': u'ReferenceError: a is not defined', u'lineNumber': 1}
- 请注意 错误信息的字段变成了 error 而不是上面的 send
在目标进程中接收消息
- 也可以从 Python 主控端往目标进程中的 JavaScript 代码发消息,比如下面的这个脚本 pingpong.py:
- 使用如下命令执行脚本:
- 脚本会输出如下内容:
在目标进程中以阻塞方式接收消息
- 在目标进程中的 JavaScript 代码可以用阻塞的方式接收来自主控端的消息,下面给一个例子 rpc.py :
- 先把 hello 这个程序执行起来,然后记录下打印出来的函数地址(比如: 0x400544 )
- 然后使用如下命令执行脚本:
- 然后观察 hello 命令行输出,大致应该如下:
- hello 这个程序界面应该一直输出你输入的数据的 2 倍的值,直到你按下 Ctrl+D 结束。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论