grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a u¿1jG.ã@sHddlZddlZddlZddlZddlZddlmZdd„Zdd„Zdd „Z d d „Z d d „Z dd„Z dd„Z Gdd„dƒZd9dd„Zdd„Zdadd„Zdd„Zdd„Zdd„Zd d!„Zedd"d#œedd$d#œedd%d#œd&œZd'd(„ZiZd)d*„Zd+d,„ZGd-d.„d.ƒZd/d0„Zd1d2„Zeeeed3œZd4d5„Z d6d7„Z!e"d8k�rDe!ƒdS):éNé)Ú __version__cCs2|drt|ddƒStj ¡r&tjStjjSdS)NÚinÚrb)ÚopenÚsysÚstdinÚisattyÚbuffer©Úopts©r ú1/usr/lib/python3.9/site-packages/crit/__main__.pyÚinf s  rcCs8|dr"d}|rd}t|d|ƒS|r,tjStjjSdS)NÚoutzwb+zw+)rrÚstdoutr )r ÚdecodeÚmoder r rÚoutfsrcCsttj |d|¡dd�S)NÚdirr)r)rÚosÚpathÚjoin)r Únamer r rÚdinf#src Csªd}z tj t|ƒ|d|d¡}WnFtjjyj}z*td|jtjd�t  d¡WYd}~n d}~00|drxd}t |dƒ}t j |||d�|tj kr¦| d ¡dS) NÚprettyÚnoplzSUnknown magic %#x. Maybe you are feeding me an image with raw data(i.e. pages.img)?©ÚfileréT©ÚindentÚ )ÚpycriuÚimagesÚloadrZMagicExceptionÚprintÚmagicrÚstderrÚexitrÚjsonÚdumprÚwrite)r r!ÚimgÚexcÚfr r rr's  þþ   rcCsVzt t|ƒ¡}Wn*ty<tdtjd�t d¡Yn0tj   |t |dƒ¡dS)NzbCannot read JSON. Maybe you are feeding me an image with protobuf data? Encode expects JSON input.rrF) r*r%rÚUnicodeDecodeErrorr&rr(r)r#r$r+r)r r-r r rÚencode;s þr1cCs,tj t|ƒ¡}tj|tjdd�tƒdS)Nrr ) r#r$Úinforr*r+rrr&)r Zinfsr r rr2Fsr2cCs ||vr||S|d|dS)NZns_rr )ÚpÚvalr r rÚ get_task_idLsr5c@seZdZdd„ZdS)Úps_itemcCs,t|dƒ|_|d|_||_||_g|_dS)NÚpidÚppid)r5r7r8r3ÚcoreÚkids)Úselfr3r9r r rÚ__init__Vs   zps_item.__init__N)Ú__name__Ú __module__Ú __qualname__r<r r r rr6Usr6cCsZtd|jt|jdƒt|jdƒdd||jddfƒ|jD]}t|||dƒq@dS) Nz%7d%7d%7d %s%sZpgidZsidú rZtcZcommr)r&r7r5r3r9r:Úshow_ps)r3r ÚdepthZkidr r rrA^sÿ ÿÿ rAc Cs²i}tj t|dƒ¡}|dD]<}tj t|dt|dƒƒ¡}t||ddƒ}|||j<qd}|D]2}||}|jdkr€|}qd||j}|j  |¡qdt ddƒt ||ƒdS)Nú pstree.imgÚentriesz core-%d.imgr7rz%7s%7s%7s %s)ZPIDZPGIDZSIDZCOMM) r#r$r%rr5r6r7r8r:Úappendr&rA) r ZpssÚps_imgr3r9ÚpsZpsrr7Úppr r rÚ explore_psfs$ ÿ    rIcCsltdur:ztj t|dƒ¡daWnty8gaYn0ttƒdkrJdStD]}|d|krN|SqNdS)Nz files.imgrDrÚid)Ú files_imgr#r$r%rÚ ExceptionÚlen)r ÚftÚfidr/r r rÚftype_find_in_files�s     rPcCsxt|||ƒ}|r,|d|vr(||dSdS|ddurRtj t||ƒ¡d|d<|dD]}|d|krZ|SqZdS)NÚfieldr-rDrJ)rPr#r$r%r)r rNrOr-r/r r rÚftype_find_in_image”s       rRcCst|||dƒ}|r|dpdS)Nz reg-files.imgrz unknown path©rR)r rNrOZrfr r rÚ ftype_reg¤srTcCs"t|||dƒ}|rd|dp dS)Nz pipes.imgzpipe[%d]Zpipe_idzpipe[?]rS)r rNrOr3r r rÚ ftype_pipe©srUcCsDt|||dƒ}|sdS|dr*d|dp,d}d|d|d|fS) Nz unixsk.imgzunix[?]rz %sÚzunix[%d (%d)%s]ÚinoZpeerrS)r rNrOZuxÚnr r rÚ ftype_unix®s rYZreg)Úgetr-rQÚpipeZusk)ÚREGÚPIPEZUNIXSKcCsd|d|fS)Nz%s.%dÚtypr )r rNrOr r rÚ ftype_genÊsr_cCsZ|d|df}t |d¡}|sVt |dt|ddœ¡}|d|||dƒ}|t|<|S)NÚtyperJ)rZr^rZ)Ú files_cacherZÚ file_typesr_)r ÚfdÚkeyr/rNr r rÚ get_file_strÑs rec Csütj t|dƒ¡}|dD]Ü}t|dƒ}tj t|d|ƒ¡}|ddd}tj t|d|ƒ¡}td|ƒ|dD]}td |d t||ƒfƒqxtj t|d |ƒ¡dd}td d t|d|ddœƒfƒtd dt|d|ddœƒfƒqdS)NrCrDr7z ids-%s.imgrZfiles_idz fdinfo-%d.imgú%dz %7d: %srcz fs-%d.imgz %7s: %sÚcwdr\Zcwd_id©r`rJÚrootZroot_id)r#r$r%rr5r&re)r rFr3r7ZidiZfdtZfdircr r rÚ explore_fdsÜs,    þÿþÿrjc@seZdZdd„Zdd„ZdS)Úvma_idcCsi|_d|_dS©Nr)Ú _vma_id__idsÚ _vma_id__last)r;r r rr<öszvma_id.__init__cCs4|j |d¡}|s0|j}|jd7_||j|<|Srl)rmrZrn)r;ZiidÚretr r rrZús  z vma_id.getN)r=r>r?r<rZr r r rrkõsrkc Cstj t|dƒ¡}tƒ}|dD�]ð}t|dƒ}tj t|d|ƒ¡dd}td|ƒtddt|d |d d œƒfƒ|d D�]Œ}|d }|d@r°dd| |d¡}nØ|d@rÐdd| |d¡}n¸|d@rðdd| |d¡}n˜|d@�r@dt|d |dd œƒ}|d�r,|d|d7}|d@�rˆ|d7}nH|d@�rPd}n8|d@�r`d}n(|d@�rpd }n|d!d@�r„d"}nd#}|d$@�sš|d%7}|d&d$@�r®d'�p°d(} | |d&d@�rÈd)�pÊd(7} | |d&d@�räd*�pæd(7} d+|d,|d-f} td.| | |fƒq‚q dS)/NrCrDr7ú mm-%d.imgrrfz %-36s %sZexer\Z exe_file_idrhÚvmasÚstatusir@zips[%lx]Úshmidéz shmem[%lx]iz packet[%lx]éÀZpgoffz + %#lxé€z (s)éz [stack]rz [vsyscall]éz [vdso]Úflagsz [stack?]rVrz *ÚprotÚrú-ÚwÚxz %08lx-%08lxÚstartÚendz %-36s%s%s) r#r$r%rrkr5r&rerZ) r rFZvidsr3r7ZmmiÚvmaÚstÚfnrzZastrr r rÚ explore_memssZ  þÿ þ        r„c Cs¦tj t|dƒ¡}|dD�]„}t|dƒ}tj t|d|ƒ¡ddd}tj t|d|ƒ¡d}td|ƒd}d }|d d…D�]}d |d |d f} |t|ƒkrÊ||d|d krÊ|d 7}q |d |d d>} d} |t|ƒk�r†||d| k�r†||} ||k�r| d7} nR| d| d| d| dd?f7} | dd@�rl| dt|d| ddœƒ7} |}| dd7} |d 7}qâ|d 8}td| | fƒq†qdS)NrCrDr7rprrqzpagemap-%d.imgrféÿÿÿÿrz %lx / %-8dZvaddrZnr_pagesr€é rVrz ~z %08lx / %-8drrrur@r\rsrhz %23sz%-24s%s)r#r$r%rr5r&rMre) r rFr3r7rqZpmsZvmiZpvmiZpmZpstrZpmeZvstrr�r r rÚ explore_rss9sN  ÿÿÿÿ      ÿþ   r‡©rGZfdsZmemsZrsscCst|d|ƒdS)NÚwhat)Ú explorersr r r rÚexplorehsr‹c Cs�d}tj|tjd�}|jddtd�|jdd�}|jdd d�}|jd d d d �|jdddd�|jdddd�|jtdd�|jddd�}|jdddd�|jdddd�|jt d�|jddd�}| d¡|jt d�|jddd�}| d ¡|jd!gd"¢d#�|jt d�|jd$d%d�}| d¡|jd&d'd d �|jtd(dd)�t |  ¡ƒ}|�s€tj | ¡¡tj d*¡t d+¡|d,|ƒdS)-NzCRiu Image Tool)Ú descriptionÚformatter_classz --versionÚversion)ÚactionrŽz-Use crit CMD --help for command-specific help)Úhelprz+convert criu image from binary type to jsonz--prettyzIMultiline with indents and some numerical fields in field-specific formatÚ store_true)r�r�z-iz--inzsd      ýýýõ 5(üE