§
    %#fj  ã                   ó†   — d dl Z d dlmZmZ d dlmZ d dlmZ  e j        e	¦  «        Z
 G d„ dej        j        ¦  «        ZdS )é    N)Ú
interfacesÚ	renderers)Úrequirements)Úpslistc                   ó8   — e Zd ZdZdZed„ ¦   «         Zd„ Zd„ ZdS )ÚCheck_credsz9Checks if any processes are sharing credential structures©é   r   r   c                 óv   — t          j        ddg d¢¬¦  «        t          j        dt          j        d¬¦  «        gS )NÚkernelzLinux kernel)ÚIntel32ÚIntel64ÚAArch64)ÚnameÚdescriptionÚarchitecturesr   r	   )r   ÚpluginÚversion)r   ÚModuleRequirementÚPluginRequirementr   ÚPsList)Úclss    úa/home/panchajanya/Development/work/volatility3/volatility3/framework/plugins/linux/check_creds.pyÚget_requirementszCheck_creds.get_requirements   sR   € õ Ô*ØØ*Ø?Ð?Ð?ðñ ô õ
 Ô*Ø¥f¤m¸Yðñ ô ð	
ð 		
ó    c              #   óf  K  — | j         j        | j        d                  }|                     d¦  «        }|                     d¦  «        st          d¦  «        ‚i }t          j                             | j         |j	        ¦  «        }|D ]N}|j
                             ¦   «         j        j        }||vrg ||<   ||                              |j        ¦  «         ŒO|                     ¦   «         D ]F\  }}t#          |¦  «        dk    r.d}	|D ]}
|	|
d›dz   }	Œ|	d d	…         }	d
t%          |	¦  «        gfV — ŒGd S )Nr   Útask_structÚcredzæThis plugin requires the task_struct structure to have a cred member. This member is not present in the supplied symbol table. This means you are either analyzing an unsupported kernel version or that your symbol table is corrupt.é   Ú Údz, éþÿÿÿr   )ÚcontextÚmodulesÚconfigÚget_typeÚ
has_memberÚ	TypeErrorr   r   Ú
list_tasksr   r   ÚdereferenceÚvolÚoffsetÚappendÚpidÚitemsÚlenÚstr)ÚselfÚvmlinuxÚ	type_taskÚcredsÚtasksÚtaskÚ	cred_addrÚ_ÚpidsÚpid_strr.   s              r   Ú
_generatorzCheck_creds._generator    s]  è è € Ø”,Ô& t¤{°8Ô'<Ô=ˆà×$Ò$ ]Ñ3Ô3ˆ	à×#Ò# FÑ+Ô+ð 	Ýðzñô ð ð ˆå”×(Ò(¨¬°w´|ÑDÔDˆàð 	.ð 	.ˆDØœ	×-Ò-Ñ/Ô/Ô3Ô:ˆIà Ð%Ð%Ø#%iÑ à)Ô×#Ò# D¤HÑ-Ô-Ð-Ð-à—{’{‘}”}ð 	*ð 	*‰GˆAˆtÝ4‰yŒy˜1Š}ˆ}ØØð 5ð 5CØ%¨3¨¨¨¨Ñ4GGØ! # 2 #œ,Ø3˜w™<œ<˜.Ð)Ð)Ð)Ð)øð	*ð 	*r   c                 ó`   — t          j        dt          fg|                      ¦   «         ¦  «        S )NÚPIDs)r   ÚTreeGridr1   r<   )r2   s    r   ÚrunzCheck_creds.run@   s%   € ÝÔ! F­C = /°4·?²?Ñ3DÔ3DÑEÔEÐEr   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú_required_framework_versionÚclassmethodr   r<   r@   © r   r   r   r      s]   € € € € € ØCÐCà"+Ðàð

ð 

ñ „[ð

ð*ð *ð *ð@Fð Fð Fð Fð Fr   r   )ÚloggingÚvolatility3.frameworkr   r   Ú#volatility3.framework.configurationr   Úvolatility3.plugins.linuxr   Ú	getLoggerrA   ÚvollogÚpluginsÚPluginInterfacer   rG   r   r   ú<module>rP      s¢   ðð
 €€€à 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø <Ð <Ð <Ð <Ð <Ð <Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,à	ˆÔ	˜8Ñ	$Ô	$€ð3Fð 3Fð 3Fð 3Fð 3F*Ô$Ô4ñ 3Fô 3Fð 3Fð 3Fð 3Fr   