2016-06-14 01:17:09 +00:00
|
|
|
"""
|
2016-01-02 15:00:27 +00:00
|
|
|
tcp_message Inline Script Hook API Demonstration
|
|
|
|
------------------------------------------------
|
|
|
|
|
|
|
|
* modifies packets containing "foo" to "bar"
|
|
|
|
* prints various details for each packet.
|
|
|
|
|
|
|
|
example cmdline invocation:
|
2018-05-11 09:58:01 +00:00
|
|
|
mitmdump --rawtcp --tcp-host ".*" -s examples/complex/tcp_message.py
|
2016-06-14 01:17:09 +00:00
|
|
|
"""
|
2016-10-19 21:11:58 +00:00
|
|
|
from mitmproxy.utils import strutils
|
2018-05-07 23:23:52 +00:00
|
|
|
from mitmproxy import ctx
|
2018-05-11 09:58:01 +00:00
|
|
|
from mitmproxy import tcp
|
2016-01-02 15:00:27 +00:00
|
|
|
|
2016-05-29 08:23:39 +00:00
|
|
|
|
2018-05-11 09:58:01 +00:00
|
|
|
def tcp_message(flow: tcp.TCPFlow):
|
|
|
|
message = flow.messages[-1]
|
|
|
|
old_content = message.content
|
|
|
|
message.content = old_content.replace(b"foo", b"bar")
|
2016-01-02 15:00:27 +00:00
|
|
|
|
2018-05-07 23:23:52 +00:00
|
|
|
ctx.log.info(
|
2018-05-11 09:58:01 +00:00
|
|
|
"[tcp_message{}] from {} to {}:\n{}".format(
|
|
|
|
" (modified)" if message.content != old_content else "",
|
|
|
|
"client" if message.from_client else "server",
|
|
|
|
"server" if message.from_client else "client",
|
|
|
|
strutils.bytes_to_escaped_str(message.content))
|
2016-07-05 22:11:32 +00:00
|
|
|
)
|