hf-fastapi / mitm /mitm_server.py
Evilmass
add mitm_server
09ac853
import json
from mitmproxy import http, ctx
class MhwsRequest:
def __init__(self) -> None:
"""
mitmproxy -s mitm_server.py
system.json
https://hjm.rebe.capcom.com/systems/EAR-B-WW/00001/system.json
https://server.mhwee.com/systems/EAR-B-WW/00001/system.json
https://evi0mo-hf-fastapi.hf.space/systems/EAR-B-WW/00001/system.json
multiplayer
https://40912.playfabapi.com/MultiplayerServer/ListParty/QosServers
https://evi0mo-hf-fastapi.hf.space/MultiplayerServer/ListParty/QosServers
"""
# system.json
self.original_rebe_host = "hjm.rebe.capcom.com"
self.rebe_host = "evi0mo-hf-fastapi.hf.space"
self.rebe_url = f"https://{self.rebe_host}/systems/EAR-B-WW/00001/system.json"
self.rebe_data = {
"json_ver": "1.0.2",
"title": "EAR-B-WW",
"revision": "00001",
"api_timeout": 30000,
"mtm": f"https://{self.rebe_host}",
"mtms": "https://mtms.rebe.capcom.com",
"mmr": "https://mmr.rebe.capcom.com",
"tmr": f"https://{self.rebe_host}/v1/projects/earth-analysis-obt/topics/analysis-client-log:publish",
"nkm": "https://nkm.rebe.capcom.com",
"wlt": "https://wlt.rebe.capcom.com",
"selector": "https://selector.gs.capcom.com",
"working_state": "alive",
"custom_property": "eyJvYnRfaW5mbyI6eyJlbnYiOjEsInN0YXJ0X3RpbWUiOjE3MzA0MjgyMDAsImVuZF90aW1lIjoxNzMwOTg5MjAwfSwicWEzIjp7ImFwaSI6IiIsIm5vdGlmeSI6IiJ9fQ=="
}
# multiplayer
self.multiplayer_url = "https://40912.playfabapi.com/MultiplayerServer/ListParty/QosServers"
def request(self, flow: http.HTTPFlow) -> None:
if flow.request.pretty_url == self.rebe_url:
ctx.log.alert(flow.request)
flow.response = http.Response.make(
status_code=200,
content=json.dumps(self.rebe_data),
headers={"Content-Type": "application/json; charset=utf-8"},
)
if flow.request.pretty_url == self.multiplayer_url:
flow.response = http.Response.make(
status_code=404,
content="offline mode",
headers={"Content-Type": "text/html"},
)
if flow.request.pretty_host == self.original_rebe_host:
flow.request.host = self.rebe_host
def response(self, flow: http.HTTPFlow) -> None:
ctx.log.info(f"get response from: {flow.request.url}")
addons = [
MhwsRequest()
]