Ë
    %#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y)é    N)Ú
interfacesÚ	renderers)Úrequirements)Úpslistc                   ó0   — e Zd ZdZdZed„ «       Zd„ Zd„ Zy)ÚCheck_credsz9Checks if any processes are sharing credential structures©é   r   r   c                 ó‚   — 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   s@   € ô ×*Ñ*ØØ*Ú?ôô
 ×*Ñ*Ø¤f§m¡m¸Yôð	
ð 		
ó    c              #   ór  K  — | j                   j                  | j                  d      }|j                  d«      }|j	                  d«      st        d«      ‚i }t        j                  j                  | j                   |j                  «      }|D ]W  }|j                  j                  «       j                  j                  }||vrg ||<   ||   j                  |j                  «       ŒY |j!                  «       D ];  \  }}t#        |«      dkD  sŒd}	|D ]  }
|	|
d›dz   }	Œ |	d d	 }	d
t%        |	«      gf–— Œ= y ­w)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    s7  è ø€ Ø—,‘,×&Ñ& t§{¡{°8Ñ'<Ñ=ˆà×$Ñ$ ]Ó3ˆ	à×#Ñ# FÔ+Üðzóð ð ˆä—‘×(Ñ(¨¯©°w·|±|ÓDˆàò 	.ˆDØŸ	™	×-Ñ-Ó/×3Ñ3×:Ñ:ˆIà Ñ%Ø#%iÑ à)Ñ×#Ñ# D§H¡HÕ-ð	.ð —{‘{“}ò 	*‰GˆAˆtÜ4‹y˜1‹}ØØò 5CØ%¨3¨q¨'°¨Ñ4‘Gð5à! # 2˜,Øœ3˜w›<˜.Ð)Ó)ñ	*ùs   ‚D
D7Ä*D7c                 óX   — t        j                  dt        fg| j                  «       «      S )NÚPIDs)r   ÚTreeGridr1   r<   )r2   s    r   ÚrunzCheck_creds.run@   s"   € Ü×!Ñ! F¬C = /°4·?±?Ó3DÓEÐEr   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú_required_framework_versionÚclassmethodr   r<   r@   © r   r   r   r      s)   „ ÙCà"+Ðàñ

ó ð

ò*ó@Fr   r   )ÚloggingÚvolatility3.frameworkr   r   Ú#volatility3.framework.configurationr   Úvolatility3.plugins.linuxr   Ú	getLoggerrA   ÚvollogÚpluginsÚPluginInterfacer   rG   r   r   ú<module>rP      s?   ðó
 ç 7Ý <Ý ,à	ˆ×	Ñ	˜8Ó	$€ô3F*×$Ñ$×4Ñ4õ 3Fr   