0

我正在使用 mitmproxy,但我对它还是很陌生(已经使用了几天)。现在我正在尝试拦截获取请求,并将字符串的所有实例替换为“数据:456”,例如“数据:123”,然后恢复信息流,意图从应用程序中获取某个响应. 我已经成功拦截了我想要的 URL,但我不明白如何创建一个脚本来替换“数据:123”的所有实例,或者在拦截时是否可以这样做。任何帮助表示赞赏!获取请求看起来像这样。替换所有实例的原因是因为数据似乎重复(不必要?)多次,手动替换每个实例是不可行的。

    "text": {
    "data": "123",
    "size": 36,
    "style": "bold",
    "name": "text1",
    "hOffset": 250,
    "vOffset": 100,
    "alignment": "center",
    "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
}
    "text": {
    "data": "123",
    "size": 36,
    "style": "bold",
    "name": "text1",
    "hOffset": 250,
    "vOffset": 100,
    "alignment": "center",
    "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
}

请注意,我截获的实际数据更大,并且格式不是很好,因此需要一个脚本。我查看了https://github.com/mitmproxy/mitmproxy上的示例,但似乎对我正在尝试做的事情没有任何帮助。

非常感谢为我的问题找到解决方案的任何帮助和指导!!!

4

1 回答 1

0

You can get and modify GET requests path in the handle_requests method in the implementation example given in the doc.

def handle_request(self, flow):
  request = flow.request

  # ---------------------------------
  # Play with the GET path with regex
  # Add 'import re'
  newPath = re.sub(r"data:123", "data:456", request.path)
  # ---------------------------------

  flow.request.path = newPath
  flow.reply()
于 2016-07-25T10:09:51.313 回答