指令
指令
命令是允许用户主动与插件交互的机制。也许最突出的例子是mitmproxy控制台用户界面-该工具中的每个交互都包含与键绑定的命令。命令还形成了一种灵活且非常强大的方式,可从命令提示符下与mitmproxy进行交互。在mitmproxy控制台中,您可以使用:键输入命令提示符。该提示具有用于命令名和许多内置参数类型的智能制表符补全功能-请尝试一下。
命令的规范参考是该--commands标志,该标志由每个mpmproxy工具公开。传递此标志将把所有已注册命令,它们的参数和它们的返回值的带注释的列表转储到屏幕上。在mimtproxy控制台中,您还可以在命令浏览器中查看所有命令的面板(默认情况下可通过C键绑定访问)。
处理流程
mitmproxy的许多命令都将流作为参数。例如,客户端重播命令的签名如下所示:
replay.client [flow]
这意味着它期望一个或多个流的序列。这就是流规范的来源-mitmproxy将在调用命令时智能地将灵活的流选择语言扩展到流列表。
启动mitmproxy控制台,并拦截一些流量,以便我们进行处理。现在键入以下命令:
:replay.client @focus
确保尝试使用制表符完成作为命令名称和流程规范。该@focus说明符扩展到目前集中流动,所以你应该可以看到这个流程重播。但是,重播可以占用任何数量的流。尝试以下命令:
:replay.client @all
现在,您应该看到所有流程都一个接一个地重放。我们在这里拥有mitmproxy过滤器语言的全部功能,因此,例如,我们也可以只重放特定域的流:
:replay.client "~d google.com"
自定义键绑定
Mitmproxy的键绑定可以在~/.mitmproxy/keys.yaml
文件中根据您的需要进行自定义 。该文件由一系列地图组成,具有以下键:
- key(必填):绑定键。
- cmd(必填):按下键时执行的命令。
- context:应该在其中绑定键的上下文列表。默认情况下,这是全局的(即,密钥被绑定在任何地方)。有效的背景是chooser,commands,dataviewer,eventlog,flowlist,flowview,global,grideditor,help,keybindings,options。
- help:绑定的帮助字符串,将在按键绑定浏览器中显示。
例子
Simple global binding
key: ctrl a cmd: replay.client @marked
Bind key only in the flowlist
Note that 1 is quoted, or YAML interprets it as a digit
key: "1" ctx: ["flowlist"] cmd: console.nav.down help: Go to next flow
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论