From ec855315807726a6b64c42910d97ee378d62ad28 Mon Sep 17 00:00:00 2001 From: David Shaw Date: Tue, 6 May 2014 13:27:13 -0400 Subject: - working WBXML parser --- libmproxy/console/contentview.py | 20 ++++++++++++++++++++ libmproxy/console/help.py | 4 ++++ 2 files changed, 24 insertions(+) (limited to 'libmproxy/console') diff --git a/libmproxy/console/contentview.py b/libmproxy/console/contentview.py index 5f3e17fe..b1b99bb6 100644 --- a/libmproxy/console/contentview.py +++ b/libmproxy/console/contentview.py @@ -8,6 +8,7 @@ import netlib.utils from . import common from .. import utils, encoding, flow from ..contrib import jsbeautifier, html2text +from ..contrib.wbxml.ASCommandResponse import ASCommandResponse try: import pyamf from pyamf import remoting, flex @@ -426,12 +427,31 @@ class ViewProtobuf: txt = _view_text(decoded[:limit], len(decoded), limit) return "Protobuf", txt +class ViewWBXML: + name = "WBXML" + prompt = ("wbxml", "w") + content_types = [ + "application/vnd.wap.wbxml", + "application/vnd.ms-sync.wbxml" + ] + + def __call__(self, hdrs, content, limit): + + try: + parser = ASCommandResponse(content) + parsedContent = parser.xmlString + txt = _view_text(parsedContent, len(parsedContent), limit) + return "WBXML", txt + except: + return None + views = [ ViewAuto(), ViewRaw(), ViewHex(), ViewJSON(), ViewXML(), + ViewWBXML(), ViewHTML(), ViewHTMLOutline(), ViewJavaScript(), diff --git a/libmproxy/console/help.py b/libmproxy/console/help.py index bd7217e1..3fd216b5 100644 --- a/libmproxy/console/help.py +++ b/libmproxy/console/help.py @@ -78,6 +78,10 @@ class HelpView(urwid.ListBox): common.highlight_key("xml", "x") + [("text", ": XML")] ), + (None, + common.highlight_key("wbxml", "w") + + [("text", ": WBXML")] + ), (None, common.highlight_key("amf", "f") + [("text", ": AMF (requires PyAMF)")] -- cgit v1.2.3