§
    Mv¦j}  ã                  óŒ   — U d Z ddlmZ ddlZddlZddlZddlZddlZddlm	Z	m
Z
 dZdd„Zdd	„Zdd„Zdaded<   dd„Zddd„ZdS )u¿  
Poe2VisualTool Hardware Fingerprint (HWID) Engine
Sinh mÃ£ Ä‘á»‹nh danh pháº§n cá»©ng Ä‘á»™c nháº¥t (Deterministic Machine HWID).
Thu tháº­p:
  - Motherboard UUID (CIM / Registry MachineGuid)
  - CPU Processor ID
  - Primary Disk Serial Number / Volume Serial
  - Salted SHA-256 Hash -> Ä�á»‹nh dáº¡ng thÆ°Æ¡ng máº¡i: PVT-XXXX-XXXX-XXXX-XXXX
100% An toÃ n, khÃ´ng thay Ä‘á»•i sau khi khá»Ÿi Ä‘á»™ng láº¡i mÃ¡y.
Báº£n quyá»�n 2026 Poe2VisualTool.
é    )ÚannotationsN)ÚDictÚOptionalz+Poe2VisualTool-Commercial-HWID-Salt-2026-v1ÚreturnÚstrc                 óD  — t           j        dk    rdS 	 ddl} |                      | j        dd| j        | j        z  ¦  «        }|                      |d¦  «        \  }}|                      |¦  «         t          |¦  «         
                    ¦   «         S # t          $ r Y dS w xY w)u(   Láº¥y MachineGuid tá»« Windows Registry.ÚntÚ r   NzSOFTWARE\Microsoft\CryptographyÚMachineGuid)ÚosÚnameÚwinregÚOpenKeyÚHKEY_LOCAL_MACHINEÚKEY_READÚKEY_WOW64_64KEYÚQueryValueExÚCloseKeyr   ÚstripÚ	Exception)r   ÚkeyÚvalÚ_s       ú1C:\Projects\Poe2VisualTool\src\commercial\hwid.pyÚ_get_registry_machine_guidr      s±   € å	„w�$‚€ØˆrðØˆˆˆØ�nŠnØÔ%Ø.ØØŒO˜fÔ4Ñ4ñ	
ô 
ˆð ×$Ò$ S¨-Ñ8Ô8‰ˆˆQØ�Š˜ÑÔÐÝ�3‰xŒx�~Š~ÑÔÐøÝð ð ð Øˆrˆrðøøøs   ”A<B Â
BÂBc            
     ó  — t           j        dk    rdS 	 t          j        ¦   «         } t          j        j                             dddt          j        | ¦  «        dddd¦  «        }|dk    r	| j        d›S n# t          $ r Y nw xY wdS )uE   Láº¥y sá»‘ seri á»• Ä‘Ä©a há»‡ thá»‘ng C:\ qua GetVolumeInformationW.r	   r
   zC:\Nr   Ú08X)
r   r   ÚctypesÚc_ulongÚwindllÚkernel32ÚGetVolumeInformationWÚbyrefÚvaluer   )ÚserialÚrets     r   Ú_get_volume_serialr'   -   sœ   € å	„w�$‚€ØˆrðÝ”Ñ!Ô!ˆÝŒmÔ$×:Ò:Ø�D˜!�Vœ\¨&Ñ1Ô1°4¸¸tÀQñ
ô 
ˆð �!Š8ˆ8Ø”lÐ(Ð(Ð(ð øåð ð ð Øˆðøøøàˆ2s   ”AA4 Á4
BÂ BÚ	cim_classÚpropc                óì  — t           j        dk    rdS 	 ddddd| › d|› �g}t          j        |d	d	d
t           j        dk    rt          j        nd¬¦  «        }|j        dk    r‚|j                             ¦   «         }|rg|                     ¦   «          	                    d¦  «        s@d|                     ¦   «         vr*d„ | 
                    ¦   «         D ¦   «         }|r|d         ndS n# t          $ r Y nw xY wdS )uh   Truy váº¥n thuá»™c tÃ­nh pháº§n cá»©ng qua PowerShell Get-CimInstance (Nhanh & Hiá»‡n Ä‘áº¡i hÆ¡n wmic).r	   r
   Ú
powershellz
-NoProfilez-NonInteractivez-Commandz(Get-CimInstance -ClassName z  -ErrorAction SilentlyContinue).Té   r   )Úcapture_outputÚtextÚtimeoutÚcreationflagszto be filledÚnonec                ó^   — g | ]*}|                      ¦   «         ¯|                      ¦   «         ‘Œ+S © )r   )Ú.0Úls     r   ú
<listcomp>z'_query_wmi_property.<locals>.<listcomp>T   s-   € ÐJÐJÐJ qÀÇÂÁ	Ä	ÐJ˜Ÿš™œÐJÐJÐJó    )r   r   Ú
subprocessÚrunÚCREATE_NO_WINDOWÚ
returncodeÚstdoutr   ÚlowerÚ
startswithÚ
splitlinesr   )r(   r)   ÚcmdÚresultr   Úliness         r   Ú_query_wmi_propertyrC   =   s,  € å	„w�$‚€ØˆrðàØØØØ\¨9Ð\Ð\ÐVZÐ\Ð\ð
ˆõ ”ØØØØÝ9;¼ÀDº¸�*Ô5Ð5Èað
ñ 
ô 
ˆð Ô Ò!Ð!Ø”-×%Ò%Ñ'Ô'ˆCØð 1˜3Ÿ9š9™;œ;×1Ò1°.ÑAÔAð 1ÀfÐTW×T]ÒT]ÑT_ÔT_ÐF_ÐF_àJÐJ¨C¯NªNÑ,<Ô,<ÐJÑJÔJ�Ø#(Ð0�u˜Q”x�x¨bÐ0øøÝð ð ð Øˆðøøøàˆ2s   ”CC$ Ã$
C1Ã0C1zOptional[Dict[str, str]]Ú_CACHED_DETAILSúDict[str, str]c                 óx  — t           �t           S i } t          dd¦  «        }|r|                     ¦   «         dk    rt          ¦   «         }|pd| d<   t          dd¦  «        }|st	          j        ¦   «         pd	}|| d
<   t          dd¦  «        }|st          ¦   «         pd}|| d<   t          ¦   «         }|r|| d<   | a | S )ud   Thu tháº­p cÃ¡c thÃ´ng sá»‘ pháº§n cá»©ng cá»‘t lÃµi cá»§a mÃ¡y tÃ­nh (cÃ³ Ä‘á»‡m bá»™ nhá»› cache).NÚWin32_ComputerSystemProductÚUUIDz$ffffffff-ffff-ffff-ffff-ffffffffffffzMB-DEFAULT-UUIDÚmotherboard_uuidÚWin32_ProcessorÚProcessorIdzCPU-DEFAULT-IDÚcpu_idÚWin32_DiskDriveÚSerialNumberzDISK-DEFAULT-SERIALÚdisk_serialÚmachine_guid)rD   rC   r=   r   ÚplatformÚ	processorr'   )ÚdetailsÚmb_uuidrL   rO   Úguids        r   Ú get_hardware_fingerprint_detailsrV   ^   sõ   € õ Ð"ÝÐà €Gõ "Ð"?ÀÑHÔH€GØð /�g—m’m‘o”oÐ)OÒOÐOÝ,Ñ.Ô.ˆØ")Ð">Ð->€GÐÑõ !Ð!2°MÑBÔB€FØð :ÝÔ#Ñ%Ô%Ð9Ð)9ˆØ€GˆHÑõ &Ð&7¸ÑHÔH€KØð DÝ(Ñ*Ô*ÐCÐ.CˆØ(€GˆMÑõ &Ñ'Ô'€DØð 'Ø"&ˆ�Ñà€OØ€Nr7   Úcustom_saltúOptional[str]c           
     óš  — | pt           }t          ¦   «         }|                     dd¦  «        |                     dd¦  «        |                     dd¦  «        |                     dd¦  «        |g}d                     d„ |D ¦   «         ¦  «        }t	          j        |                     d¦  «        ¦  «                             ¦   «         }t	          j        ||                     d¦  «        z   ¦  «                             ¦   «          	                    ¦   «         }|d	d
…         }d|dd…         › d|dd…         › d|dd…         › d|dd
…         › �S )uð   
    Sinh mÃ£ bÄƒm HWID chuáº©n hÃ³a dÃ nh cho thÆ°Æ¡ng máº¡i:
    Ä�á»‹nh dáº¡ng: PVT-XXXX-XXXX-XXXX-XXXX (16 kÃ½ tá»± hex chia thÃ nh 4 nhÃ³m).
    Ä�áº£m báº£o tÃ­nh xÃ¡c Ä‘á»‹nh (Deterministic): CÃ¹ng 1 mÃ¡y luÃ´n sinh cÃ¹ng 1 mÃ£.
    rI   r
   rL   rO   rP   ú|c              3  ób   K  — | ]*}|                      ¦   «                              ¦   «         V — Œ+d S ©N)r   Úupper)r4   Úcs     r   ú	<genexpr>z#get_machine_hwid.<locals>.<genexpr>’   s4   è è € ÐEÐE°Q˜qŸwšw™yœyŸšÑ0Ô0ÐEÐEÐEÐEÐEÐEr7   zutf-8Né   zPVT-r   é   ú-é   é   )
Ú	HWID_SALTrV   ÚgetÚjoinÚhashlibÚsha256ÚencodeÚdigestÚ	hexdigestr]   )rW   ÚsaltrS   Ú
componentsÚraw_fingerprintÚ
first_passÚ
final_hashÚhs           r   Úget_machine_hwidrs   �   sD  € ð Ð#�)€DÝ.Ñ0Ô0€Gð 	�ŠÐ&¨Ñ+Ô+Ø�Š�H˜bÑ!Ô!Ø�Š�M 2Ñ&Ô&Ø�Š�N BÑ'Ô'Øð€Jð —h’hÐEÐE¸*ÐEÑEÔEÑEÔE€Oõ ” × 6Ò 6°wÑ ?Ô ?Ñ@Ô@×GÒGÑIÔI€JÝ” 
¨T¯[ª[¸Ñ-AÔ-AÑ AÑBÔB×LÒLÑNÔN×TÒTÑVÔV€Jð 	�3�B�3Œ€AØ8�!�A�a�C”&Ð8Ð8˜1˜Q˜q˜Sœ6Ð8Ð8 A a¨ d¤GÐ8Ð8¨a°°2°¬hÐ8Ð8Ð8r7   )r   r   )r(   r   r)   r   r   r   )r   rE   r\   )rW   rX   r   r   )Ú__doc__Ú
__future__r   r   rh   r   rQ   r8   Útypingr   r   re   r   r'   rC   rD   Ú__annotations__rV   rs   r3   r7   r   ú<module>rx      sþ   ðð
ð 
ð 
ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ð !Ð !ð :€	ðð ð ð ð&ð ð ð ð ð ð ð ð< -1€Ð 0Ð 0Ð 0Ñ 0ð ð  ð  ð  ðF9ð 9ð 9ð 9ð 9ð 9ð 9r7   