Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
app.cpython-313.pyc226 linesDownload Raw Back to __pycache__
1�

2��j܀��V�SSKJr SSKrSSKrSSKrSSKrSSKrSSKrSSKr	SSK3r4SSKrSSKrSSK
Jr SSK
Jr SSKJr SSKJr SSKJr SSKJr SS	KJr SS5KJr SSKJr SSKrSSKrSSKrSSKrSSKrSSK r SSKJ!r! SS
KJ"r" SSKJ#r# SSKJ$r$ SSKJ%r% SSKJr SSKJ&r& SSKJ'r' SSKJ(r( SSK)J*r* SSK+J,r, SSK-J.r. SSK-J/r/ SSK0J1r1 SSK2J3r3 SSK2J4r4 SSK5J6r6 SSK7J8r8 SSK9J:r: SSK9J;r; SS K<J=r= \R|"S!S"5 S#r?\R�"\A5rBS{S$jrCS|S%jrDS}S&jrE"S'S(\R�R�5rH"S)S*\R�R�5rJ"S+S,\J5rI"S-S.\I5rK"S/S0\I5rL"S1S2\R�R�\J5rO"S3S4\O5rP"S5S6\I5rQ"S7S8\I5rR"S9S:\I5rS"S;S<\I5rT"S=S>\I5rU"S?S@\I5rV"SASB\I5rW"SCSD\I5rX"SESF\I5rY"SGSH\I5rZ"SISJ\I5r["SKSL\I5r\"SMSN\I5r]"SOSP\I5r^"SQSR\I5r_"SSST\I5r`"SUSV\I5ra"SWSX\I5rb"SYSZ\I5rc"S[S\\I5rd"S]S^\I5re"S_S`\R�R�5rgSa\K4Sb\L4Sc\P4Sd\^4Se\_4Sf\`4Sg\Q4Sh\R4Si\T4Sj\U4Sk\X4Sl\V4Sm\W4Sn\Y4So\[4Sp\Z4Sq\\4Sr\]4Ss\S4St\a4Su\b4Sv\c4Sw\d4Sx\e4/rh"SySz\R�R�5rig)~�)�annotationsN)�Callable)�Sequence)�BytesIO)�Any)�	Awaitable)�ClassVar)�Concatenate)�Literal)�Optional)�certs)�command)�contentviews)�6flowfilter)�http)�io)�log)�7optmanager)�version)�DNSFlow)�HTTPFlow)�TCPFlow)�8TCPMessage)�WebAuth)�UDPFlow)�9UDPMessage)�
asyncio_utils)�emoji)�10always_str)�cut_after_n_lines)�WebSocketMessageztext/javascriptz.jssD�PNG
1112
IHDR�IDATx�c����Q
hIEND�B`�c
��U(dgUSnURUR5R5[URR55[URR55[UR5URURURVs/sHn[UR5PM snS.$s snf)Nr)�keyinfo�sha256�	notbefore�notafter�serial�subject�issuer�altnames)
r#�fingerprint�hex�intr%�	timestampr&�strr'r(r)r*�value)r
�cert�xs   �]D:\code\apps\devtools\python\user_packages\Python313\site-packages\mitmproxy/tools/web/app.py�cert_to_jsonr4Bs�������8�D��<�<��"�"�$�(�(�*�����1�1�3�4���
�
�/�/�1�2��d�k�k�"��<�<��+�+�+/�=�=�9�=�a�S����\�=�9�	�	��:s�2Cc��URURURURUR	5UR13(a![R"UR14S5OSURURS.nUR(GaURRURRURRURR[URR5URR URR"[%URR&SS5URR(URR*URR,URR.S.US'UR0(Ga@UR0RUR0RUR0RUR0R2UR0R[UR0R5UR0R UR0R"[%UR0R&SS5UR0R(UR0R*UR0R4UR0R,UR0R.S.US	'UR6(aUR6R95US15'[;U[<5(Ga�UR>R@bX[CUR>R@5n[DRF"UR>R@5RI5nOSnSnUR>RJUR>RLUR>RNUR>RPUR>RRUR>RT[WUR>RXR[S55UUUR>R*UR>R.UR>R\S
.US'UR^(GatUR^R@bX[CUR^R@5n[DRF"UR^R@5RI5nOSnSnUR^RTUR^R`UR^Rb[WUR^RXR[S55UUUR^R*UR^R.S.US'UR^RdRf(a>[WUR^RdRfR[S55USS'URh(a�[kSURhRl55[CURhRl5URhRl(a#URhRlSRnOSS.URhRpURhRrURhRtURhR.S.US'U$[;U[v[x45(ab[kSURl55[CURl5URl(aURlSRnOSS.US'U$[;U[z5(aKUR>R}5US'UR^(aUR^R}5US'U$)z�16Remove flow message content and cert to save transmission space.17Args:18    flow: The original flow.19Sync with web/src/flow.ts.20u🔴�)�id�intercepted�	is_replay�type�modified�marked�comment�timestamp_created�ascii�backslashreplace)r7�peername�sockname�tls_establishedr1�sni�cipher�alpn�tls_version�timestamp_start�timestamp_tls_setup�
timestamp_end�client_conn)r7rArB�addressrCr1rDrErFrGrH�timestamp_tcp_setuprIrJ�server_conn�errorNT)�method�scheme�host�port�path�http_version�headers�
contentLength�contentHashrHrJ�pretty_host�request)rU�status_code�reasonrVrWrXrHrJ�response�trailersc3�L# �UHn[UR5v� M g7f�N��len�content��.0r2s  r3�	<genexpr>�flow_to_json.<locals>.<genexpr>�s���)�0G�1��A�I�I���0G���"$�����)rW�count�timestamp_last)�
messages_meta�closed_by_client�21close_code�close_reasonrJ�	websocketc3�L# �UHn[UR5v� M g7fr`rards  r3rfrg�s��� G��A��Q�Y�Y����rhrl)?r7r8r9r:r;r<r�getr=r>rKrArBrCr4�certificate_listrDrErrFrGrHrIrJrNrLrMrO�	get_state�22isinstancerrZ�raw_contentrb�hashlibr$�	hexdigestrPrQrRrSrTrU�tuplerV�itemsrYr]r[r\�datar^rp�sum�messagesr.rmrnrorrr�to_json)�flow�f�content_length�content_hashs    r3�flow_to_jsonr�Rs����g�g��'�'��^�^��	�	��M�M�O�48�K�K�%�)�)�D�K�K��0�R��<�<�!�3�3�		�A������"�"�%�%��(�(�1�1��(�(�1�1�#�/�/�?�?� ��!1�!1�!B�!B�C��#�#�'�'��&�&�-�-��t�/�/�4�4�g�?Q�R��+�+�7�7�#�/�/�?�?�#'�#3�#3�#G�#G�!�-�-�;�;�
23��-�������"�"�%�%��(�(�1�1��(�(�1�1��'�'�/�/�#�/�/�?�?� ��!1�!1�!B�!B�C��#�#�'�'��&�&�-�-��t�/�/�4�4�g�?Q�R��+�+�7�7�#�/�/�?�?�#'�#3�#3�#G�#G�#'�#3�#3�#G�#G�!�-�-�;�;�24��-�� �z�z��Z�Z�)�)�+��'�25��$��!�!��<�<�#�#�/� ����!9�!9�:�N�"�>�>�$�,�,�*B�*B�C�M�M�O�L�!�N��L��l�l�)�)��l�l�)�)��L�L�%�%��L�L�%�%��L�L�%�%� �L�L�5�5��T�\�\�1�1�7�7��=�>�+�'�#�|�|�;�;�!�\�\�7�7��<�<�3�3�
26��)���=�=�=��}�}�(�(�4�!$�T�]�]�%>�%>�!?��&�~�~�d�m�m�.G�.G�H�R�R�T��!%��#�� $�
�
� :� :�#�}�}�8�8��-�-�.�.� ����!6�!6�!<�!<�T�!B�C�!/�+�#'�=�=�#@�#@�!%���!<�!<�	�A�j�M��}�}�!�!�*�*�,1��M�M�&�&�/�/�5�5�d�;�-��*�
�j�)��>�>�&)�)�04���0G�0G�)�&�!����!8�!8�9��~�~�.�.�'+�n�n�&=�&=�b�&A�&K�&K��"�%)�N�N�$C�$C�"�n�n�7�7� $��� ;� ;�!%���!=�!=��A�k�N�4
�H�27�D�7�G�,�	-�	-� � G���� G�G�����'�=A�]�]�d�m�m�B�/�9�9�PT�28��/��
�H�29�D�'�	"�	"��|�|�+�+�-��)���=�=� �M�M�1�1�3�A�j�M��H�c�H�[U5URURS.$)N)r7�message�level)r7�msgr�)�es r3�logentry_to_jsonr��s!����e��5�5�����r�c��\rSrSrSrg)�APIError���N)�__name__�30__module__�__qualname__�__firstlineno__�__static_attributes__r�r�r3r�r��s��r�r�c�\^�\rSrSrmSrSrS	Sjr\U4Sj"55rS31Sjr	Sr32Urg)�AuthRequestHandler���yc���URHfnUR5n[X5nU[RR33RLdMG[X[RU55 Mh g)z=Automatically wrap all request handlers with `_require_auth`.N)34�SUPPORTED_METHODS�lower�getattr�tornado�web�RequestHandler�_unimplemented_method�setattrr��
_require_auth)�cls�kwargsrP�fns    r3�__init_subclass__�$AuthRequestHandler.__init_subclass__�sU���+�+�F��\�\�^�F���%�B�����3�3�I�I�I���%7�%E�%E�b�%I�J�	,r�c��g)zN35Will be called when returning a 403.36May write a login form as the response.37Nr���self�invalid_passwords  r3�	auth_fail�AuthRequestHandler.auth_fail�s�r�c�*>�S7=nS7=n4SSjs8$)�P�Rc�Z^�[R"T5SU4Sjj5nU$)Nc��>�UR(d�SnURRRS5=n(aUR	S5upVnUS:XaUnU(dURSSS9nURS"U5(d,URS5 UR[U55 gURURS	"5URS38SSS
9 T"U/UQ70UD6$)Nr6�
Authorization� �Bearer�token)�default�is_valid_password��auth_cookie_name�T�Strict)�expires_days�httponly�samesite)�current_userrZrVrr�	partition�get_argument�settings�39set_statusr��bool�set_signed_cookie�AUTH_COOKIE_VALUE)	r��argsr��password�auth_header�auth_scheme�_�auth_paramsr�s	        �r3�wrapper�1AuthRequestHandler._require_auth.<locals>.wrapper�s�����$�$���"&�,�,�"6�"6�":�":�?�"K�K�;�K�2=�2G�2G��2L�/�K�K�"�h�.�#.���#�0�0��"�0�E�H��}�}�%8�9�(�C�C��O�O�C�(��N�N�4��>�2���&�&��M�M�"4�5�7��*�*�!$�!�%�'���d�,�T�,�V�,�,r�)r�r�r�zP.argsr�zP.kwargs�returnzR | None)�	functools�wraps)r�r�s` r3r�� AuthRequestHandler._require_auth�sG���40����	�	-�$�	-�-3�	-�?G�	-�
�	-�41�	-�4�r�)r�z/Callable[Concatenate[AuthRequestHandler, P], R]r�z6Callable[Concatenate[AuthRequestHandler, P], R | None]r�)�	.defaultsr�r��
__classdict__s   �r3�%<generic parameters of _require_auth>�8AuthRequestHandler.<generic parameters of _require_auth>�s����1�c�;��	?�r�c�`�URURS"5SS9UR:H$)Nr��)�min_version)�get_signed_cookier�r��r�s r3�get_current_user�#AuthRequestHandler.get_current_users6���"�"�4�=�=�1C�#D�#F�TU�"�V��%�%�
&�	42r�r�N�r�r�r��None�r�r�)r�r�r�r�r�r�r��staticmethodr�r�r��__classdictcell__)r�s@r3r�r��s:������K�������@43�44r�r�c�^�\rSrSr%S\S'SrSU4SjjrU4Sjr\S5r	\S5r45\SS	j5r\SS46j5r\SSj5r
SU4SjjrS
rU=r$)r�i�Application�applicationc���URRS;aXSURR;a=URRSS;a[RRS5eggg)N)�GET�HEAD�OPTIONSzSec-Fetch-Site)zsame-origin�noner�)rZrPrVr��47httpclient�	HTTPErrorr�s r3�prepare�RequestHandler.preparesh���L�L���'A�A� �D�L�L�$8�$8�8����$�$�%5�6�>U�U��$�$�.�.�s�3�3�V�9�
Br�c�>�[U[5(a1[RR	U5nURSS5 [TU]U5 g)N�Content-Typezapplication/json; charset=UTF-8)ru�listr��escape�json_encode�48set_header�super�write)r��chunk�	__class__s  �r3r��RequestHandler.write$sA����e�T�"�"��N�N�.�.�u�5�E��O�O�N�,M�N�
��
�e�r�c��>�[TU]5 URS[R5 URSS5 URSS5 URSS5 URSS	5 g)49N�Server�X-Frame-Options�DENYzX-XSS-Protectionz
1; mode=block�X-Content-Type-Options�nosniffzContent-Security-Policyzddefault-src 'self'; connect-src 'self' ws:; img-src 'self' data:; style-src   'self' 'unsafe-inline')r��set_default_headersr�r�	MITMPROXY�50add_header)r�r�s �r3r�"RequestHandler.set_default_headers,sc���
��#�%�����'�"3�"3�4����)�6�2����*�O�<����0�)�<����%�
1�	51r�c�B�URRRSS5RS5(d[	SS5e[52R"URRR55$![an[	SSU35eSnAff=f)Nr�r6zapplication/jsonr�z0Invalid Content-Type, expected application/json.zMalformed JSON: )53rZrVrr�54startswithr��json�loads�body�decode�	Exception�r�r�s  r3r�RequestHandler.json:s����|�|�#�#�'�'���;�F�F��55�56��3� R�S�S�	8��:�:�d�l�l�/�/�6�6�8�9�9���	8��3�"2�1�#� 6�7�7��	8�s�7B�57B�58B�Bc���URR(aC[[URRR	555SR59$URR60$)zR61Accept either a multipart/form file upload or just take the plain request body.62 63r)rZ�files�next�iter�valuesrr�s r3�filecontents�RequestHandler.filecontentsEsO���<�<�����T�\�\�/�/�6�6�8�9�:�1�=�B�B�B��<�<�$�$�$r�c�B�URRR$r`)r��master�viewr�s r3r�RequestHandler.viewPs�����&�&�+�+�+r�c�.�URR$r`)r�rr�s r3r�RequestHandler.masterTs�����&�&�&r�c��[URS5nURRU5nU(aU$[	SS5e)N�flow_idi�zFlow not found.)r/�path_kwargsr�	get_by_idr�)r�rrs   r3r�RequestHandler.flowXsA���d�&�&�y�1�2���y�y�"�"�7�+����K��3� 1�2�2r�c�>�SU;a=[USS[5(a"URUSSR5 g[TU]"U40UD6 g)N�exc_info�)rur��finish�log_messager��write_error)r�r[r�r�s   �r3r$�RequestHandler.write_errorbsO������J�v�j�/A�!�/D�h�$O�$O��K�K��z�*�1�-�9�9�:��G���6�v�6r�r�)r�zstr | bytes | dict | list)r�zmitmproxy.addons.view.View)r��$mitmproxy.tools.web.master.WebMaster)r��mitmproxy.flow.Flow)r[r-)r�r�r�r��__annotations__r�r�r�propertyrrrrrr$r��
__classcell__�r�s@r3r�r�s������4��64��8��8��%��%��,��,��'��'��3��3�7�7r�r�c�(�\rSrSrSSjrSr\rSrg)�IndexHandleriic�$�URSUS9 g)Nz65login.html)r���renderr�s  r3r��IndexHandler.auth_failjs�����L�3C��Dr�c�&�URS5 g)Nz
../index.htmlr/r�s r3rr�IndexHandler.getms�����O�$r�r�Nr�)r�r�r�r�r�rr�postr�r�r�r3r-r-is��E�%��Dr�r-c��\rSrSrSrSrg)�66FilterHelpisc�P�UR[[RS95 g)N)�commands)r��dictr�helpr�s r3rr�FilterHelp.getts���67�68�4����1�2r�r�N�r�r�r�r�rrr�r�r�r3r6r6ss��3r�r6c�z�\rSrSr%S\S'S\S'S\S'SSjrS	rS69r\S5r	SSjr70S
r\S5r
Srg)�WebSocketEventBroadcasterixz(ClassVar[set[WebSocketEventBroadcaster]]�connectionszasyncio.Queue[bytes]�_send_queuezasyncio.Task[None]�71_send_taskc�.�URnU(degr`)�72xsrf_token)r�r�s  r3r��!WebSocketEventBroadcaster.prepares��������u�r�c���URRU5 [R"5Ul[73R"UR5SSS9Ulg)NzWebSocket send taskF)�name�keep_ref)	r?�add�asyncio�Queuer@r�create_task�	send_taskrA)r�r�r�s   r3�open�WebSocketEventBroadcaster.open�sF�������T�"�"�=�=�?���'�3�3��N�N��&��74��r�c�n�URRU5 URR5 gr`)r?�discardrA�cancelr�s r3�on_close�"WebSocketEventBroadcaster.on_close�s&����� � ��&������ r�c�n�URU5nURHnURU5 M gr`)�_json_dumpsr?�send)r�r�r��conns    r3�	broadcast�#WebSocketEventBroadcaster.broadcast�s*���/�/�&�)���O�O�D��I�I�g��$r�c�:�URRU5 gr`)r@�75put_nowait�r�r�s  r3rV�WebSocketEventBroadcaster.send�s�����#�#�G�,r�c���# �URR5IShv�NnURU5IShv�N M>N N![RR76a UR
5 N6f=f7fr`)r@rr�
write_messager�rp�WebSocketClosedErrorrRr\s  r3rL�#WebSocketEventBroadcaster.send_task�sf���� �,�,�0�0�2�2�G�
 ��(�(��1�1�1��2�1���$�$�9�9�
 ��
�
��
 �sB�A:�A�A:�A�A�A�A:�A�.A7�4A:�6A7�7A:c�L�[R"USS9RSS5$)NF)�ensure_ascii�utf8�surrogateescape)r�dumps�encode)�ds r3rU�%WebSocketEventBroadcaster._json_dumps�s!���z�z�!�%�0�7�7��@Q�R�Rr�)r@rAN)r�zOptional[Awaitable[None]])r��bytes)r�r�r�r�r(r�rMrR�classmethodrXrVrLr�rUr�r�r�r3r>r>xsW��9�9�%�%�"�"��7778�!�����79-� ��S��Sr�r>c�^�\rSrSr%\"5rS\S'S\S'S
U4Sjjr\SSj5r	\SSj5r80SS	jrSS81jrSSjr
SrU=r$)�ClientConnectioni�zClassVar[set[ClientConnection]]r?r�r�c�6>�[TU]"X40UD6 0Ulgr`)r��__init__�filters)r�r�rZr�r�s    �r3ro�ClientConnection.__init__�s���
����8��8�68��r�c��URHqnURURSS055 URR	5R5H up#UR
X#R5 M" Ms g)Nr:zflows/reset)r?rVrUrp�copyrz�
update_filter�pattern)r�rWrF�exprs    r3�broadcast_flow_reset�%ClientConnection.broadcast_flow_reset�s^���O�O�D��I�I�c�o�o�v�}�&=�>�?�"�l�l�/�/�1�7�7�9�82���"�"�4���6�:�$r�c�d�[U5nURHnURXU5 M gr`)r�r?�_broadcast_flow)r�r:r��	flow_jsonrWs     r3�broadcast_flow�ClientConnection.broadcast_flow�s+��!��O�	��O�O�D�� � ��)�4�$r�c83���URR5VVs0sHupEU[U"U55_M nnnURUUUS.S.5nUR	U5 gs snnf)N)r�matching_filters�r:�payload)rprzr�rUrV)r�r:r�r{rFrvrpr�s        r3rz� ClientConnection._broadcast_flow�sm��:>���9K�9K�9M�N�9M�:�4�4��d�1�g��&�9M��N��"�"��%�(/��
�84��	
�	�	�'���Os�A(c�~�U(am[R"U5nX0RU'URRR85Vs/sHoC"U5(dMURPM nnOURRUS5 SnURSUUS.S.5nURUS9 gs snf)Nzflows/filterUpdate)rF�matching_flow_idsr�)r�)86r�parserpr�rrr7�poprUrV)r�rFrv�filtr�r�r�s       r3rt�ClientConnection.update_filter�s�����#�#�D�)�D�!%�L�L���/3�/?�/?�/F�/F�/K�/K� W�/K�!�t�TU�w�����/K�� W���L�L���T�4�(� $���"�"�,� �):��
�87��	
�	�	�'�	�"��!Xs�B:�"B:c��.# �[R"U5nUS=S:Xa  URUSSUSS5 gn[SU35e![a5n[88R
SUSU35 URS	S89S9 SnAgSnAff=f7f)Nr:zflows/updateFilterr�rFrvzUnsupported command: zError processing message from �: i�zInternal server error.)�coder\)rrrt�90ValueErrorr91�loggerrO�close)r�r�r{�otherr�s     r3�92on_message�ClientConnection.on_message�s����		C��:�:�g�&�D��v�,�)��&�&�t�I��v�'>��Y��PV�@W�X��$�'<�U�G�%D�E�E���	C��L�L�9�$��r�!��E�F��J�J�D�)A�J�B��	C�s4�B�?A�B�A�93B�+B
�B�
B�B)rp)r�r��r�r�)r:�$Literal['flows/add', 'flows/update']r�r'r�r�)r:r�r�r'r{r9r�r�)rFr/rvr/r�r�)r�zstr | bytes)r�r�r�r��setr?r(rorkrwr|rzrtr�r�r*r+s@r3rmrm�s����36�5�K�0�8���9��7��7��5�2�5��5�94�	5��5��2�����	�9596��$#�(97C�98Cr�rmc��\rSrSrSrSrg)�Flowsi�c�x�URURVs/sHn[U5PM sn5 gs snfr`)r�rr��r�r�s  r3rr�	Flows.get�s(���99�100�T�Y�Y�7�Y��L��O�Y�7�8��7s�7r�Nr<r�r�r3r�r��s��9r�r�c�$�\rSrSrSSjrSrSrg)�	DumpFlowsi�c�B�URSS5 URSS5 [R"URRSSR55n[5n[R"U5nURH#nU"U5(dMURU5 M% URUR!55 SSS5 g![a
 [SS5e[[4a S101S	jnN�f=f!,(df   g=f)N�Content-Dispositionzattachment; filename=flowsr��application/octet-stream�filterrr�zInvalid filter argument / regexc��g)NTr�)r�s r3�match�DumpFlows.get.<locals>.matchs��r�r�)r�rr�rZ�	argumentsr	r�r��KeyError�102IndexErrorrr�103FlowWriterrrHr��getvalue)r�r��bio�fwr�s     r3rr�
DumpFlows.get�s������-�/K�L�����(B�C�104	��$�$�T�\�\�%;�%;�H�%E�a�%H�%O�%O�%Q�R�E��Y�#����s�#�B��Y�Y����8�8��F�F�1�I��
�J�J�s�|�|�~�&��Y���	D��3�"A�C�C���105�	�106
�	���Y�s#�>C �.1D�#4D� *D
�D
�107Dc��*# �URR5 [UR5n[R108"U5R
5H&nURRU5IShv�N M( UR5 gN7fr`)109r�clearrrr�110FlowReader�streamr�	load_flowr�)r�r�r�s   r3r4�DumpFlows.postse����	�	�����d�'�'�(�����s�#�*�*�,�A��+�+�'�'��*�*�*�-��	�	��
+�s�A5B�7B�8Br�Nr�)r�r�r�r�rrr4r�r�r�r3r�r��s��'�0r�r�c��\rSrSrSrSrg)�ClearAllic��URR5 URRR5 gr`)rr�r�eventsr�s r3r4�
ClearAll.posts&���	�	��������� � �"r�r�N�r�r�r�r�r4r�r�r�r3r�r�s��#r�r�c��\rSrSrSrSrg)�ResumeFlowsi c��URHBnUR(dMUR5 URRU/5 MD gr`)rr8�resume�updater�s  r3r4�ResumeFlows.post!s7�����A��=�=��
�H�H�J��I�I���a�S�!�	r�r�Nr�r�r�r3r�r� s��"r�r�c��\rSrSrSrSrg)�	KillFlowsi)c��URHBnUR(dMUR5 URRU/5 MD gr`)r�killable�killr�r�s  r3r4�KillFlows.post*s6�����A��z�z�z������	�	� � �!��%�r�r�Nr�r�r�r3r�r�)s��&r�r�c��\rSrSrSrSrg)�111ResumeFlowi1c��URR5 URRUR/5 gr`)rr�rr��r�rs  r3r4�ResumeFlow.post2s*���	�	�����	�	���$�)�)��%r�r�Nr�r�r�r3r�r�1s��&r�r�c��\rSrSrSrSrg)�KillFlowi7c��URR(aAURR5 URR	UR/5 ggr`)rr�r�rr�r�s  r3r4�
KillFlow.post8s:���9�9����I�I�N�N���I�I���d�i�i�[�)�r�r�Nr�r�r�r3r�r�7���*r�r�c�$�\rSrSrSrSSjrSrg)�FlowHandleri>c��URR(aURR5 URR	UR/5 gr`)rr�r�r�remover�s  r3�delete�FlowHandler.delete?s5���9�9����I�I�N�N���	�	���$�)�)��%r�c	��URnUR5 URR5GH�up4US:XGaH[	US5(Ga6UR112nUR5GHupgUS;a[
XV[U55 M#US:Xa[U5Ul	M;US:Xa>URR5 UHnURR"U6 M MUS:XaoURbURR5 O#[RR!5Ul
UHn	URR"U	6 M M�US:Xa	XulGM[%SSUS	U35e GMUUS113:XGaH[	US1145(Ga6UR&n115UR5GHupgUS;a[
X�[U55 M#US:Xa[U5U116lM;US:Xa>U117RR5 UHnU118RR"U6 M MUS:XaoU119RbU120RR5 O#[RR!5U121l
UHn	U122RR"U	6 M M�US:Xa	XzlGM[%SS
US	U35e GM�US:Xa	XBlGM�US:Xa	XBlGM�[%SSUS	U35e UR0R3U/5 g![$a UR/5 ef=f)NrZ)rPrQrRrTrUrSrVr^rcr�zUnknown update request.r�r])r�rUr�zUnknown update response.r<r=zUnknown update )r�backuprrz�hasattrrZr�r/r-rSrVr�rHr^�	mitmproxyr�Headers�textr�r]r[r<r=�revertrr�)r�rr�a�brZ�k�v�header�trailerr]s           r3�put�FlowHandler.putDs���$(�I�I�����
�7	��	�	���)����	�>�g�d�I�&>�&>�6:�l�l�G� !���	���� T�T�#�G��A��7��&�[�+.�q�6�G�L��)�^�#�O�O�1�1�3�*+�� '��� 3� 3�V� <�+,��*�_�&�/�/�;� '� 0� 0� 6� 6� 8�3<�>�>�3I�3I�3K�� 0�+,�� '� 0� 0� 4� 4�g� >�,-��)�^�+,�L�"*�3�2I�!��B�q�c�0R�"S�S�'!*�*�*�_���z�)B�)B�8<�
�
�H� !���	���� 7�7�#�H��Q��8��&�[�36�q�6�H�0��)�^�$�,�,�2�2�4�*+�� (� 0� 0� 4� 4�f� =�+,��*�_�'�0�0�<� (� 1� 1� 7� 7� 9�4=�N�N�4J�4J�4L�� 1�+,�� (� 1� 1� 5� 5�w� ?�,-��)�^�,-�M�"*�3�2J�1�#�R�PQ�s�0S�"T�T�'!*�(�(�]�"#�K��)�^�#$�L�"�3�/�!��B�q�c�(B�C�C�g*�n	
�	�	���$�� ���	��K�K�M��	�s�K0L+�+Mr�Nr�)r�r�r�r�r�r�r�r�r�r3r�r�>s��&�123;!r�r�c��\rSrSrSrSrg)�
DuplicateFlowi�c��URR5nURRU/5 UR	UR1245 gr`)rrsrrHr�r7)r�rr�s   r3r4�DuplicateFlow.post�s4���I�I�N�N����	�	�
�
�q�c���125�126�1�4�4�r�r�Nr�r�r�r3r�r��s��r�r�c��\rSrSrSrSrg)�127RevertFlowi�c���URR5(aAURR5 URR	UR/5 ggr`)rr;r�rr�r�s  r3r4�RevertFlow.post�sB���9�9������I�I�����I�I���d�i�i�[�)� r�r�Nr�r�r�r3r�r��r�r�r�c��\rSrSrSrSrg)�128ReplayFlowi�c�f�URRRSUR/5 g)Nz
replay.client)rr8�callrr�s  r3r4�ReplayFlow.post�s"�������!�!�/�D�I�I�;�?r�r�Nr�r�r�r3r�r��s��@r�r�c� �\rSrSrSrSrSrg)�FlowContenti�c���URR5 [URU5nURUlUR129R
UR/5 gr`)rr�r�rrcrr�)r�rr�s   r3r4�FlowContent.post�sG���	�	�����$�)�)�W�-���+�+����	�	���$�)�)��%r�c��[URU5n[UR[5(deURRSS5nSnU(a/[R"SU5=n(aURS5nU(dDURRRRS5SRS5Sn[R"SS	U5nS130U<3nURSU5 URSS5 URS
S5 URSS5 URURSS95 g)Nr�zfilename=([-\w" .()]+)r!�?r�/riz[^-\w" .()]r6zattachment; filename=r�zapplication/textr�r�r�r�F)�strict)r�rrurrVrr�re�search�grouprZrT�split�subr�r��get_content)r�rr��original_cd�filename�m�cds       r3rr�FlowContent.get�s���$�)�)�W�-���$�)�)�X�.�.�.�.��o�o�)�)�*?��F������I�I�7��E�E�q�E��7�7�1�:����y�y�(�(�-�-�3�3�C�8��;�A�A�#�F�r�J�H��6�6�.�"�h�7��%�H�=�
)�����-�r�2�����(:�;����0�)�<����)�6�2��131�132�7�&�&�e�&�4�5r�r�N)r�r�r�r�r4rrr�r�r�r3r�r��s��&�6r�r�c�H�\rSrSrSSSjjrSSjrSrg)	�FlowContentViewi�Nc�2�U(aUR5S:XaSn[R"X#US9nU(a[URU5Ul[URURURURS9nUbXXS'UbXhS'U$)N�auto)�	view_name)r�r�syntax_highlight�description�from_clientr.)	r�r�prettify_messager r�r9rrr)	r�rr�r�	max_linesr	r.�pretty�rets	         r3�message_to_json�FlowContentView.message_to_json�s�������*�f�4��I��.�.�w�	�R���+�F�K�K��C�F�K�"�����&�&�#�4�4��*�*�	133���"�!,�
��� �(����134r�c135�j�URn[U[[[45(deUR136RRS5(a&[UR137RSS5nOSnUS:Xa�[U[5(a(UR(aURRnO4[U[[45(a
URnO[SS5e/nUHknURUUUUURURS9n	URU	5 U(dMEXYSR!S5S	--nUceUS::dMk O UR#U5 g[%URU5nUR#URX2XE55 g)138N�linesrr}r�zThis flow has no messages.)rr�rrr	r.r��139r!)rrurrrrZr�rrr-rpr}r�rr	r.�appendrjr�r�)140r�rr��content_viewrrr}�msgsr�rhs141          r3rr�FlowContentView.get�sm���y�y���$��7�G� <�=�=�=�=��<�<�!�!�%�%�g�.�.��D�L�L�2�2�7�;�A�>�?�I��I��j� ��$��)�)�d�n�n��>�>�2�2���D�7�G�"4�5�5��=�=���s�&@�B�B��D����(�(�*���'� !�
�
��k�k�
)������A���9��6�����!6��!:�:�I�$�0�0�0� �A�~���
�J�J�t���d�i�i��1�G��J�J�t�+�+�L�4�S�Tr�r�)NNN)rr/r�z9http.Message | TCPMessage | UDPMessage | WebSocketMessagerzHTTPFlow | TCPFlow | UDPFlowrz142int | Noner	zbool | Noner.zfloat | Noner�)r�r�r�r�rrrr�r�r�r3rr�sS��!%�#'�"&����K��+�	�143��!�
� ��6$Ur�rc��\rSrSrSSjrSrg)�Commandsi�c144���0nURRRR5H�up#URURVs/sHDnUR145[R"UR5[UR5S.PMF snUR(a [R"UR5OSUR5S.X'M� URU5 gs snf)N)rFr:�kind)r:�146parameters�return_type�signature_help)rr8rzr:rrFr�typenamer:r/rrrr�)r�r8rF�cmd�params     r3rr�Commands.get�s��������-�-�6�6�<�<�>�I�D����"%���
�"0��	!&�147�148� '� 0� 0���� <� #�E�J�J���149"0�
��?�?� '�/�/����@��"%�"4�"4�"6��H�N�?� 	
�150�151�8���s�AC8r�Nr�r<r�r�r3rr�s��r�rc��\rSrSrSSjrSrg)�ExecuteCommandi152c� �URSnURRR	X5nURSU05 g![a /nNHf=f![a&nURS[U505 SnAgSnAff=f)Nr�r0rO)rr�rr8�call_stringsr�r153r/)r�rr��resultr�s     r3r4�ExecuteCommand.posts���	��9�9�[�)�D�154	��[�[�)�)�6�6�s�A�F�
�J�J��V��
���	��D�	���	*��J�J���Q��(�)�)��	*�s(�A�%A�A�A�155B
�'B�B
r�N)rr/r�r�r�r3r#r#156s��r�r#c��\rSrSrSrSrg)�Eventsic��URURRRVs/sHn[	U5PM sn5 gs snfr`)r�rr�r{r�rs  r3rr�157Events.gets8���158�159����1C�1C�1H�1H�I�1H�A�$�Q�'�1H�I�J��Is�Ar�Nr<r�r�r3r)r)s��Kr�r)c� �\rSrSrSrSrSrg)�Optionsi#c�v�UR[R"URR55 gr`)r�r�160dump_dictsr�optionsr�s r3rr�Options.get$s#���161�162�:�(�(����)<�)<�=�>r�c��URnURRR"S0UD6 g![an[SU5eSnAff=f)Nr�r�)rrr0r�r163r�)r�r��errs   r3r��Options.put'sJ������	*��K�K���&�&�0��0���	*��3�3�%�)�)��	*�s�&5�164A�
A�Ar�N)r�r�r�r�rrr�r�r�r�r3r-r-#s��?�*r�r-c��\rSrSrSrSrg)�SaveOptionsi/c��gr`r�r�s r3r4�SaveOptions.post0s��165	
r�r�Nr�r�r�r3r6r6/s��
r�r6c�.�\rSrSr\SSj5rSrSrg)�Statei8c��[R[RR	5Vs/sHoS:wdM166UPM snUR167RVs0sH'o"RRUR5_M) sn[R[RRR5S.$s snfs snf)N�query)r�contentViews�servers�platform�localModeUnavailable)r�VERSIONr�registry�available_views�proxyserverr>�mode�	full_specr~�sysr?�mitmproxy_rs�local�LocalRedirector�unavailable_reason)rr��ss   r3�get_json�State.get_json:s������'�0�0�@�@�B��B�a�7�l��B��8>�7I�7I�7Q�7Q��7Q�!��� � �!�)�)�+�-�7Q�����$0�$6�$6�$F�$F�$Y�$Y�$[�168169�170	171����s�	C�C�.Cc�`�UR[RUR55 gr`)r�r:rMrr�s r3rr�	State.getHs���172�173�5�>�>�$�+�+�.�/r�r�N)rr&�r�r�r�r�r�rMrrr�r�r�r3r:r:8s���174��175�0r�r:c�*�\rSrSr\S5rSrSrg)�ProcessListiLc���[RR5nUVs/sH;nUR[	UR1765URURS.PM= sn$s snf)N)�177is_visible�178executable�	is_system�display_name)rH�process_info�active_executablesrUr/rVrWrX)�	processes�processs  r3rM�ProcessList.get_jsonMsl�� �-�-�@�@�B�	�%�179�%��&�0�0�!�'�"4�"4�5�$�.�.� '� 4� 4�	
�%�180�	181��182s�AA(c�J�UR[R55 gr`)r�rSrMr�s r3rr�ProcessList.getZs���183�184�;�'�'�)�*r�r�NrQr�r�r3rSrSLs���185186��187188�+r�rSc��\rSrSrSrSrg)�ProcessImagei^c�H�URSS5nU(d[SS5e[RR	U5nURSS5 URSS5 URSS	5 URU5 g![189a	 [nNZf=f)190NrTr�zMissing 'path' parameter.r�z	image/pngr�r�z
Cache-Controlzmax-age=604800)	�get_query_argumentr�rHrY�executable_iconr191�TRANSPARENT_PNGr�r�)r�rT�192icon_bytess   r3rr�ProcessImage.get_s����&�&�v�t�4����3� ;�<�<�	)�%�2�2�B�B�4�H�J�	
�����4����0�)�<�����)9�:��193�194�:���
�	)�(�J�	)�s�B�B!� B!r�Nr<r�r�r3rara^s��r�rac�Z�\rSrSrS1\R195RRkrSrg)�GZipContentAndFlowFilesipr�r�N)	r�r�r�r�r�r��GZipContentEncoding�
CONTENT_TYPESr�r�r�r3ririps$��"��	���	(�	(�	6�	6��Mr�rir�z/filter-help(?:\.json)?z/updatesz/commands(?:\.json)?z/commands/(?P<cmd>[a-z.]+)z/events(?:\.json)?z/flows(?:\.json)?z/flows/dumpz
/flows/resumez/flows/killz/flows/(?P<flow_id>[0-9a-f\-]+)z&/flows/(?P<flow_id>[0-9a-f\-]+)/resumez$/flows/(?P<flow_id>[0-9a-f\-]+)/killz)/flows/(?P<flow_id>[0-9a-f\-]+)/duplicatez&/flows/(?P<flow_id>[0-9a-f\-]+)/replayz&/flows/(?P<flow_id>[0-9a-f\-]+)/revertzS/flows/(?P<flow_id>[0-9a-f\-]+)/(?P<message>request|response|messages)/content.dataz}/flows/(?P<flow_id>[0-9a-f\-]+)/(?P<message>request|response|messages)/content/(?P<content_view>[0-9a-zA-Z\-\_%]+)(?:\.json)?z/clearz/options(?:\.json)?z
/options/savez/state(?:\.json)?z196/processesz/executable-iconc�D^�\rSrSr%S\S'SU4SjjrSrU=r$)r�i�r&rc��>�XlURRS5n[TU][197[RR[RR[5S5[RR[RR[5S5SS[SS9[R"S5US	[/URUR S	S1989
 g)N�webauth�	templates�staticT�_mitmproxy_xsrfr�)r�� F)
�handlers�
template_path�static_path�xsrf_cookies�xsrf_cookie_name�xsrf_cookie_kwargs�
cookie_secret�debug�199autoreload�200transformsr�r��compiled_template_cache)r�addonsrrr�rors�osrT�join�dirname�__file__r9�secrets�token_bytesrir�r�)r�rrz�201auth_addonr�s    �r3ro�Application.__init__�s������$�m�m�/�/�	�:�202�
�����'�'�,�,�r�w�w���x�'@�+�N������R�W�W�_�_�X�%>��I��/�#�X�6�!�-�-�b�1���/�0�(�:�:�'�8�8�$)�	�	203r�)r)rr&rzr�r�r�)r�r�r�r�r(ror�r*r+s@r3r�r��s+���0�0�204�:�205�CG�206�	
�207�208r�r�)r
zSequence[certs.Cert]r�zdict | None)rr'r�r9)r�zlog.LogEntryr�r9)j�209__future__rrIr�rwr�logging�	mimetypes�os.pathrr�r�rG�collections.abcrrrr�typingrrr	r210rr�tornado.escaper��tornado.web�tornado.websocket�mitmproxy.flowr��mitmproxy.tools.web.masterrHr
rrrrrrr�
mitmproxy.dnsr�mitmproxy.httpr�
mitmproxy.tcprr�mitmproxy.tools.web.webaddonsr�
mitmproxy.udprr�mitmproxy.utilsr�mitmproxy.utils.emojir�mitmproxy.utils.strutilsrr �mitmproxy.websocketr!�add_typere�	getLoggerr�r�r4r�r�r�r�r�r�r�r-r6rp�WebSocketHandlerr>rmr�r�r�r�r�r�r�r�r�r�r�r�rrr#r)r-r6r:rSrarjrirsr�r�r�r3�<module>r�sc��"��������	��211�$�$������������!����"� ���� ��!�#�!�$�1�!�$�)�'�/�6�0�212213���$�e�,�B��214�	�	�8�	$��
� 
�D�	�w�{�{�$�$�	�6215����3�3�6216�rM7�'�M7�`�>��3��3�217-S�� 1� 1� B� B�DV�-S�`IC�0�IC�X9�N�9�218���B#�~�#�"�.�"�&��&�&��&�*�~�*�A!�.�A!�H�N��*��*�@��@�2196�.�6�8@U�n�@U�F�~��,�^��(K�^�K�220	*�n�	*�
�.�
�0�N�0�(+�.�+�$�>��$�g�k�k�=�=��221�<����,��"�#��h�'�"�N�3��F�#��5�!��Y���{�#��Y��'��5�.�222�;�,�h�7�1�=�A�.�223�;�.�224�;�[�]h�i�F�HW�X�����W�%��{�#��5�!��K� ��,�'�1��8225�'�+�+�)�)�226r�
codekingpro/portable-devtools · Team Ai