ΠΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° ΠΈΠ»ΠΈ Π½Π΅Ρ
☁️ ΠΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° Linux ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ»ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ
ΠΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° Linux ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ»ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ»ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ.
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΌΠ½Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ.
Π― ΡΠΎΠΎΠ±ΡΡ, Π΅ΡΠ»ΠΈ Π½Π°ΠΉΠ΄Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ Π² Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠ΅ Π΄Π½ΠΈ.
ΠΠ΅ΡΠΎΠ΄ 1 β ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΠ»ΠΈΡΡ Dmidecode
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ·Π½Π°ΡΡ, ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π»ΠΈ ΠΌΡ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ»ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅, β ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈΠ»ΠΈΡΡ dmidecode.
Dmidecode, Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ ΡΠ°Π±Π»ΠΈΡ DMI, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ ΡΠ΅ΡΠΈΠΉΠ½ΡΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° ΠΈ Π²Π΅ΡΡΠΈΡ BIOS.
Dmidecode ΠΏΡΠ΅Π΄ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ² Linux.
ΠΠ° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π΅ΡΠ΅ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π²Π°ΡΠ΅Π³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°.
Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡ dmidecode Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ DEB, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Ubuntu, Linux Mint.
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Dmidecode Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ Π²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ»ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ:
ΠΡΠ»ΠΈ ΡΡΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡ Π½ΠΈΠΆΠ΅.
ΠΡΠ»ΠΈ ΡΡΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, ΡΠΎΠ·Π΄Π°Π½Π½Π°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Virtualbox, Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΠ»Ρ ΡΠ΅Ρ , ΠΊΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, innotek β ΡΡΠΎ Π½Π΅ΠΌΠ΅ΡΠΊΠ°Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΠ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ VirtualBox.
ΠΡΠ»ΠΈ ΡΡΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, ΡΠΎΠ·Π΄Π°Π½Π½Π°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ KVM / QEMU, Π²ΡΠ²ΠΎΠ΄ Π±ΡΠ΄Π΅Ρ:
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ²ΠΎΠ΄Π°, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, dmidecode ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ ΠΈΠΌΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Dell Inc.).
ΠΡΠ»ΠΈ ΡΡΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, ΡΠΎ ΠΎΠ½Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ / ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, VirtualBox ΠΈΠ»ΠΈ QEMU).
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΡΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ»ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ.
ΠΡΠ΅ ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΡΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ»ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ:
ΠΡΠ΅ ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° dmidecode Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠ° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ:
Π Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° dmidecode ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΠΎΠΉ ΠΆΠ΅ ΡΠ΅Π»ΠΈ:
ΠΠ΅ΡΠΎΠ΄ 2 β ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΠ»ΠΈΡΡ Facter
Facter β ΡΡΠΎ ΡΡΠΈΠ»ΠΈΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π΄Π»Ρ ΡΠ±ΠΎΡΠ° ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ΅.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Dmidecode, Facter ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° Linux.
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ facter Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ»ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ:
ΠΡΠ»ΠΈ ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΌΠΈ sudo:
ΠΠ°ΠΊ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠ΅ΡΠΎΠ΄ 3 β ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΠ»ΠΈΡΡ lshw
Π£ΡΠΈΠ»ΠΈΡΠ° lshw β ΡΡΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΡΡΠΈΠ»ΠΈΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ½Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π²ΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, Π²Π΅ΡΡΠΈΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ½ΡΠΊΠΎΠΉ ΠΏΠ»Π°ΡΡ, Π²Π΅ΡΡΠΈΡ ΠΈ ΡΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΊΠ΅ΡΠ°, ΡΠΊΠΎΡΠΎΡΡΡ ΡΠΈΠ½Ρ ΠΈ Ρ. Π΄.
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ Linux ΠΏΡΠ΅Π΄ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ lshw.
ΠΡΠ»ΠΈ ΠΎΠ½ Π΅ΡΠ΅ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.
Π Arch Linux ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ :
Π RHEL ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ CentOS, scientific Linux:
ΠΠ° Debian, Ubuntu, Linux Mint:
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ lshw Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ Π²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ»ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ:
ΠΠ΅ΡΠΎΠ΄ 4 β ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΠ»ΠΈΡΡ dmesg
Π£Π·Π½Π°ΡΡ ΡΠΈΠΏ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ dmesg.
dmesg ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° ΡΠ΄ΡΠ° ΠΈΠ»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠΌ.
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ Π²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Linux ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ»ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ, ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΡΡΡΠΈΡΠ΅:
ΠΡΠ»ΠΈ Π²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ°Ρ, Π²Ρ Π½Π΅ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ .
ΠΡΠ»ΠΈ Π²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° β Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π°, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡ Π½ΠΈΠΆΠ΅.
ΠΠ΅ΡΠΎΠ΄ 5 β ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ hostnamectl
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ·Π½Π°ΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ»ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ hostnamectl.
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ systemd.
ΠΠ΅ΡΠΎΠ΄ 6 β ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ systemd-detect-virt
ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ systemd-detect-virt ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ»ΠΈΡΠΈΡΡ ΠΏΠΎΠ»Π½ΡΡ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ°ΡΠΈΠ½Ρ ΠΎΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ»ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ:
ΠΠ΅ΡΠΎΠ΄ 7 β ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠ° virt-what
Virt-what β ΡΡΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΊΡΠΈΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ Red Hat, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π»ΠΈ ΠΌΡ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ»ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅.
virt-what ΡΠΎΠ±ΡΠ°Π½ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ² Linux, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ RHEL, Fedora, CentOS, Debian, Ubuntu, Arch Linux (AUR).
Π Arch Linux Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ ΠΈΠ· AUR Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π»ΡΠ±ΡΡ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊΠΎΠ² AUR, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Yay.
Π RHEL, Fedora, CentOS:
ΠΡΠ»ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΈ ΡΠΊΡΠΈΡ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ 0 (Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ), ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π»ΠΈΠ±ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ, Π»ΠΈΠ±ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΏΠΎΠΌ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ Π½Π΅ Π·Π½Π°Π΅ΠΌ ΠΈΠ»ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ.
ΠΡΠ»ΠΈ Π²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.
ΠΠ΅ΡΠΎΠ΄ 8 β ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠ° imvirt
Imvirt β ΡΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΊΡΠΈΠΏΡ Perl, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π²Π°ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π»ΠΈ ΠΌΡ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅.
Π Arch Linux Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ ΠΈΠ· AUR Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Yay.
ΠΠ΅ΡΠ΅ΠΊΡΠΈΠΌ Π²ΠΈΡΡΡΠ°Π»ΠΊΠΈ
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΠ°ΠΊΡ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² VirtualBox, VMware Workstation, Virtual PC ΠΈ Parallels Workstation
ΠΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Ρ ΠΎΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ, ΠΊΡ ΠΌ, Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ Π½Π΅ΠΏΡΠΈΡΡΠ½ΡΠ΅ Π΄ΡΠ΄ΡΠΊΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π»ΠΈ ΠΏΠΎΠ΄ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ. ΠΠ΅ΡΠ΅ΠΊΡ Π²ΠΈΡΡΡΠ°Π»ΠΎΠΊ β ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠ΄Π° ΡΠΎΡΡΠ°, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°ΡΠ° ΡΡΠ±ΡΠΈΠΊΠ° Π½Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π±Π΅Π· ΠΎΠ±Π·ΠΎΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ²!
ΠΠ°ΠΊ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ?
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π»ΡΠ±Π°Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Π½Π΅ΡΠ΅Ρ Π½Π° ΡΠ²ΠΎΠ΅ΠΌ Π±ΠΎΡΡΡ ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π²ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡΠ΅ΡΠ°, ΠΆΠ΅ΡΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠ°, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, Π²Π΅ΡΡΠΈΠΈ BIOS, MAC-Π°Π΄ΡΠ΅ΡΠ° ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΊΠ°ΡΡΡ.
ΠΠΎ-Π²ΡΠΎΡΡΡ , Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ»Π΅Π΄Ρ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π² Π²ΠΈΠ΄Π΅ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
Π-ΡΡΠ΅ΡΡΠΈΡ , Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΊΠΎΠΏΠ°ΡΡΡΡ Π² ΡΠ΅Π΅ΡΡΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ, ΡΠ°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ, Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½.
ΠΡ ΠΈ Π²-ΡΠ΅ΡΠ²Π΅ΡΡΡΡ , Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΡΡΠ°Π²Π»ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΡ.
Π§ΡΠΎ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠΈΡ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠ² Π½Π°Π»ΠΈΡΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΡ Π² ΡΠ²ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π³ΠΎΡΠΏΠΎΠΆΠΎΠΉ Π ΡΡΠΊΠΎΠ²ΡΠΊΠΎΠΉ (Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡ IDT, GDT ΠΈ LDT, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ), ΡΠΎ Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ ΡΡΠΈ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΈ ΡΡΡΠ΄Π½ΠΎ ΠΏΠΎΠ΄Π΄Π°ΡΡΡΡ Π°Π½Π°Π»ΠΈΠ·Ρ ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΌΡ Π·Π½Π°ΠΌΠ΅Π½Π°ΡΠ΅Π»Ρ, Π³Π»Π°Π²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΠ·-Π·Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ»ΠΈΠΊΠΎΡΡΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ².
ΠΠ½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ°ΡΠ½Π΅ΠΌ, ΠΏΠΎΠΆΠ°Π»ΡΠΉ, Ρ ΠΆΠ΅ΡΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠ°. ΠΡΠ»ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΆΠ΅ΡΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠ° Π² Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ² Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅, ΡΠΎ Π² Π΅Π³ΠΎ ΡΠΎΡΡΠ°Π²Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΡΡΡΠΎΡΠΊΠΈ:
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ·Π½Π°ΡΡ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΆΠ΅ΡΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠ° β ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ° Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«0Β» Π² Π²Π΅ΡΠΊΠ΅ ΡΠ΅Π΅ΡΡΡΠ° HKLMHARDWARESYSTEMCurrentControlSetServicesDiskEnum.
Π ΡΡΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡΡΡ Π²ΡΠ΅ Π΄ΠΈΡΠΊΠΎΠ²ΡΠ΅ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΈ ΠΏΠ΅ΡΠ²ΡΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π· Π² ΠΊΠ»ΡΡΠ΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«0Β», Π±ΡΠ΄Π΅Ρ ΡΠΎΡ Π΄ΠΈΡΠΊ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΆΠ΅ΡΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠ° VirtualBox Π² ΡΠ΅Π΅ΡΡΡΠ΅
Π₯Π°ΠΊΠ΅Ρ #174. Π‘ΠΎΠ±ΠΈΡΠ°Π΅ΠΌ ΠΊΠ²Π°Π΄ΡΠΎΠΊΠΎΠΏΡΠ΅Ρ
ΠΠ°ΠΊ ΡΠΈΡΠ°ΡΡ ΡΠ΅Π΅ΡΡΡ, Ρ Π΄ΡΠΌΠ°Ρ, ΡΡ Π·Π½Π°Π΅ΡΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ½Π°ΡΠ°Π»Π° API RegOpenKeyEx Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°, Π΄Π°Π»Π΅Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ RegQueryValueEx ΡΠΈΡΠ°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π²ΠΎΡ ΡΠ°ΠΊ:
ΠΠ°Π»Π΅Π΅ Π²ΡΠ΅ ΠΏΡΠΎΡΡΠΎ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ strstr Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π½ΡΠΆΠ½ΡΡ Π½Π°ΠΌ ΡΡΡΠΎΠΊ Π² ΡΡΠΈΡΠ°Π½Π½ΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ ΠΈ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, Π΄Π΅Π»Π°Π΅ΠΌ Π²ΡΠ²ΠΎΠ΄. ΠΠ΅ΡΡΠΈΡ BIOS ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² ΠΊΠ»ΡΡΠ΅ Β«SystemProductNameΒ» Π² Π²Π΅ΡΠΊΠ΅ HKLMHARDWAREDESCRIPTIONSystemBIOS. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π΄Π»Ρ VMware ΡΠ°ΠΌ Π±ΡΠ΄Π΅Ρ Π»Π΅ΠΆΠ°ΡΡ ΡΡΡΠΎΠΊΠ° Β«VMware Virtual PlatformΒ», Π° Π΄Π»Ρ VirtualBox β Β«VBOX β1Β».
ΠΡΠΎΡΠΈΡΠ°ΡΡ ΡΡΠΎ Π²ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ΅ ΡΠ΅Ρ ΠΆΠ΅ API β RegOpenKeyEx ΠΈ RegQueryValueEx.
ΠΠ΅ΡΡΠΈΡ BIOS Parallels Workstation Π² ΡΠ΅Π΅ΡΡΡΠ΅
ΠΠ°Π½Π½ΡΠ΅ ΠΎ Π²ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡΠ΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π³Π»ΡΠ΄Π΅ΡΡ Π² HKLMSystemCarrentControlSetEnumPCI. Π ΡΡΠΎΠΉ Π²Π΅ΡΠΊΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΎ Π²ΡΠ΅, ΡΡΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΎ ΠΊ ΡΠΈΠ½Π΅ PCI, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡΠ°. ΠΠ»Ρ VirtualPC ΡΡΠΎ ΡΡΡΠΎΡΠΊΠ° Π²ΠΈΠ΄Π° VEN_5333&DEV_8811&SUBSYS_00000000&REV_00, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π²ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡΠ΅Ρ S3 Trio 32/64, ΡΠΌΡΠ»ΠΈΡΡΠ΅ΠΌΡΠΉ Π²ΠΈΡΡΡΠ°Π»ΠΊΠΎΠΉ ΠΎΡ Microsoft β Π½Π° ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΆΠ΅Π»Π΅Π·Π΅ ΡΠ°ΠΊΠΎΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π½ΡΠ½ΡΠ΅ Π΄Π½Π΅ΠΌ Ρ ΠΎΠ³Π½Π΅ΠΌ Π½Π΅ ΡΡΡΠΊΠ°ΡΡ (Π° Ρ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠ°Ρ Π±ΡΠ»Π° Π² ΠΊΠΎΠ½ΡΠ΅ ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ Π²Π΅ΠΊΠ°. β ΠΡΠΈΠΌ. ΡΠ΅Π΄.). ΠΠ»Ρ VirtualBox Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡΠ° ΠΎΠΏΠΈΡΠ°Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ VEN_80EE&DEV_BEEF&SUBSYS_00000000&REV_00, ΡΡΠΎ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Β«VirtualBox DisplayΒ», Π° Ρ Parallels Workstation β ΡΡΡΠΎΠΊΠ° VEN_1AB8&DEV_4005&SUBSYS_04001AB8&REV_00 ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π²ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡΠ΅Ρ Β«Parallels DisplayΒ».
ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ, Π² VirtualBox ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΡΡΡΠΎΠΊΡ VEN_80EE&DEV_CAFE&SUBSYS_00000000&REV_00, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Π½Π΅ΠΊΠΈΠΉ Β«VirtualBox DeviceΒ», Π° Ρ Parallels Workstation ΡΡΡΠΎΠΊΠΈ VEN_1AB8&DEV_4000&SUBSYS_04001AB8&REV_00 ΠΈ VEN_1AB8&DEV_4006&SUBSYS_04061AB8&REV_00, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠ΅ Β«Parallels Tools DeviceΒ» ΠΈ Β«Parallels Memory ControllerΒ» ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ: ΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΎΡΠΊΡΡΡΡ Π½ΡΠΆΠ½ΡΠΉ Π½Π°ΠΌ ΠΊΠ»ΡΡ, ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΡΠΎ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ ΡΡΠΈΠΌ ΠΊΠ»ΡΡΠΎΠΌ, Π² Π½Π°Π»ΠΈΡΠΈΠΈ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΎ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ:
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ cpuid. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΡΠΊΠΎΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅. ΠΠΈΠ΄ Π²ΡΠ΄Π°Π²Π°Π΅ΠΌΠΎΠΉ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° EAX. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡΡ EBX, ECX ΠΈ EDX. ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΏΡΠΎ ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ Π² Π»ΡΠ±ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅. ΠΠ»Ρ Π½Π°ΡΠΈΡ ΡΠ΅Π»Π΅ΠΉ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΠ² Π² ΡΠ΅Π³ΠΈΡΡΡ EAX Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0x40000000:
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° VMware Workstation Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ID_1, ID_2 ΠΈ ID_3 Π±ΡΠ΄ΡΡ Π·Π°ΠΏΠΈΡΠ°Π½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ 0x61774d56, 0x4d566572 ΠΈ 0x65726177 ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ (Π² ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΡΡΠΎ Π½Π΅ ΡΡΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ Β«VMwareVMwareΒ»), Π½Π° VirtualBox Π² ID_1 ΠΈ Π² ID_2 Π±ΡΠ΄Π΅Ρ Π»Π΅ΠΆΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0x00000340, Π° Π½Π° Parallels Workstation Π² ID_1 0x70726c20, Π² ID_2 β 0x68797065 ΠΈ Π² ID_3 β 0x72762020 (ΡΡΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΡΠΎΠΊΠ΅ Β«prl hypervΒ»).
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ MAC-Π°Π΄ΡΠ΅ΡΠ° Π΄Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΊΠ°ΡΡΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π΅ ΡΠ°ΠΌΡΠΉ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± (ΠΈΠ±ΠΎ MAC-Π°Π΄ΡΠ΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ-ΡΠ°ΠΊΠΈ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ), Π½ΠΎ ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π΅Π³ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π΄Π»Ρ Π΄Π΅ΡΠ΅ΠΊΡΠ° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ.
Π’Ρ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° Π·Π½Π°Π΅ΡΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΡΠΈ Π±Π°ΠΉΡΠ° MAC-Π°Π΄ΡΠ΅ΡΠ° ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΊΠ°ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π΅Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ. ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½ Π² ΡΡΠΎΠΌ ΠΏΠ»Π°Π½Π΅ Π½Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅:
ΠΡΡΠ°ΡΠΈΡΡ ΡΡΠΈ ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΡΠΈ Π±Π°ΠΉΡΠ° ΠΈΠ· MAC-Π°Π΄ΡΠ΅ΡΠ° Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ API-ΡΡΠ½ΠΊΡΠΈΡ GetAdaptersInfo:
ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΎΠΊΠ½Π° ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Β«ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅Β» ΠΎΠ±ΡΠ΅ΠΊΡΡ
ΠΠ»Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ ΡΡΠ΅Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ ΠΊ Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ VBoxGuestAddition Π΄Π»Ρ VirtualBox ΠΈΠ»ΠΈ Parallels Tools Π΄Π»Ρ Parallels Workstation. ΠΠ΅Π· ΡΡΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ ΡΠ°Π±ΠΎΡΠ° Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΡΡΠ΄Π½ΠΈΡΠ΅Π»ΡΠ½Π° (Π½ΠΈ ΡΠ΅Π±Π΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π° ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°, Π½ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ USB-Π΄Π΅Π²Π°ΠΉΡΠ°ΠΌΠΈ, Π½ΠΈ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ). Π ΠΎΠ±ΡΠ΅ΠΌ, Π²ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ Π²ΠΈΡΡΡΠ°Π»ΠΎΠΊ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ Π±Π΅Π· ΡΡΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ. Π ΡΡΠΈ ΡΠ°ΠΌΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΎΡΠ΅Π½Ρ Π·Π°ΠΌΠ΅ΡΠ½ΡΠΉ ΡΠ»Π΅Π΄ Π² Π²ΠΈΠ΄Π΅ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²:
ΠΠ»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΌΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ CreateToolhelp32Snapshot, Process32First ΠΈ Process32Next:
ΠΠΎΠΌΠΈΠΌΠΎ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ°ΠΌΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π΄Π΅ΠΌΠ°ΡΠΊΠΈΡΡΡΡΠΈΠΌ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠΌ ΠΌΠΎΠ³ΡΡ ΡΡΠ°ΡΡ ΠΎΠΊΠ½Π°, ΠΎΡΠΊΡΡΡΡΠ΅ ΡΡΠΈΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ. ΠΠΊΠΎΠ½ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈ Π²ΡΠ΅ ΠΈΡ ΠΌΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ, Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠΌΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ Π΄Π²ΡΠΌΡ. ΠΡΠ°ΠΊ:
ΠΡΠΊΡΡΡΡΠ΅ ΠΎΠΊΠ½Π° Π΄Π»Ρ VMware (ΠΊΡΠ°ΡΠ½ΡΠΌ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΎ ΠΎΠΊΠ½ΠΎ ΠΊΠ»Π°ΡΡΠ° VMSwitchUserControlClass)
ΠΠ°ΠΉΡΠΈ ΠΎΠΊΠ½ΠΎ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ β Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ FindWindow:
ΠΠΎΠΌΠΈΠΌΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ ΠΎΠΊΠΎΠ½, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΡ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΠ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Β«ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅Β» ΠΎΠ±ΡΠ΅ΠΊΡΡ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠΊΠΎΠΏΠ°ΡΡΡΡ Π² Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ ΠΠ‘ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ WinObj ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠΉ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π²ΠΎΡ ΡΠ°ΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ:
Β«ΠΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅Β» ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² VirtualBox
ΠΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ Β«ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎΒ» ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΎΡΠΊΡΡΡΡ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ CreateFile:
Π§ΡΠΎ Π΅ΡΠ΅ Β«ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎΒ» ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΠ΅Π΅ΡΡΡΠ΅?
ΠΠΎΠΌΠΈΠΌΠΎ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠ² Π½Π°Π»ΠΈΡΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ, Π² ΡΠ΅Π΅ΡΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ»Π΅Π΄Ρ, ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΠΈΠ½Π°ΠΌΠΈ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ Π±Π°Π·ΠΈΡΡΡΡΡΡ Π² Π²Π΅ΡΠΊΠ΅ HKLMHARDWAREACPIDSDT. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π² ΡΡΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ°ΠΊΠΈΡ Π²ΠΎΡ ΠΊΠ»ΡΡΠ΅ΠΉ:
ΠΡΠΎΠ²Π΅ΡΠΊΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ»ΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎΡΡΠΎ Π΄Π΅Π»Π°Π΅ΠΌ ΠΏΠΎΠΏΡΡΠΊΡ ΠΎΡΠΊΡΡΡΡ Π½ΡΠΆΠ½ΡΠΉ Π½Π°ΠΌ ΠΊΠ»ΡΡ ΠΈ, Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π°, Π΄Π΅Π»Π°Π΅ΠΌ Π²ΡΠ²ΠΎΠ΄ ΠΎ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΠ.
ΠΠ»ΡΡ PRLS__ Π² ΡΠ΅Π΅ΡΡΡΠ΅ Parallels Workstation
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, Π·Π°Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΌ
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ (Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, VMware ΠΈ Microsoft) ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π½Π°ΡΠΈΡ ΡΠ΅Π»Π΅ΠΉ.
Π Virtual PC ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΈΠ½Π²Π°Π»ΠΈΠ΄Π½ΡΠ΅ (Π½Π΅ Β«ΠΈΠ½Π²Π°Π»ΠΈΠ΄Π½ΡΠ΅Β», Π° Β«Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎ ΠΎΠ΄Π°ΡΠ΅Π½Π½ΡΠ΅Β». Π Π²ΠΎΠΎΠ±ΡΠ΅-ΡΠΎ ΠΎΠ½ΠΈ Β«Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅Β». β ΠΡΠΈΠΌ. ΡΠ΅Π΄.) ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Ρ ΠΎΠΏΠΊΠΎΠ΄Π°ΠΌΠΈ 0x0F, 0x3F, 0x07 ΠΈ 0x0B, ΠΏΠΎΠΏΡΡΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π½Π° Virtual PC Π²ΡΠ΅ ΠΏΡΠΎΠΉΠ΄Π΅Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π·Π°Π΄Π΅ΡΠ΅ΠΊΡΠΈΡΡ Π²ΠΈΡΡΡΠ°Π»ΠΊΡ ΠΎΡ Microsoft:
Π VMware Workstation Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΠ‘ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π±ΡΠΊΠ΄ΠΎΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡΡΠ° Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ 0x5658. ΠΠ»Ρ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π² EAX ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Β«ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΎΠ΅Β» ΡΠΈΡΠ»ΠΎ 0x564d5868 (Π² ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ β Β«VMXhΒ»), Π° Π² ECX Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΠ‘ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠΌΠ°Π½Π΄Π° 0x0A Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²Π΅ΡΡΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ VMware Workstation). ΠΠΎΡΠΎΡΠ΅, Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π²ΡΠ΅ ΡΡΠΎ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΠΊ:
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΡ, ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠ², Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΡΡ Π΄Π»Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΠΈ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΡ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΠΈΠ»ΡΠ½ΠΎ Π³Π»ΡΠ±ΠΎΠΊΠΎ ΠΊΠΎΠΏΠ°ΡΡ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ.
ΠΠ΅ΡΠ΅ΠΊΡΠΈΠΌ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ Π½Π° C#: 1 ΡΡΠΎΠ²Π΅Π½Ρ
ΠΠ΄Π½ΠΈΠΌ ΠΆΡΡΡ ΠΊΠ°ΠΊΠΈΠΌ ΠΏΡΠΎΡ Π»Π°Π΄Π½ΡΠΌ ΡΠ½Π²Π°ΡΡΠΊΠΈΠΌ ΡΡΡΠΎΠΌ ΠΎΡ Π·Π½Π°ΠΊΠΎΠΌΠΎΠ³ΠΎ ΠΏΡΠΈΠ»Π΅ΡΠ΅Π» Π²ΠΎΠΏΡΠΎΡ Β ΠΊΠ°ΠΊ Π½Π° C# ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π½Π΅ Π·Π°ΠΏΡΡΠ΅Π½Π° Π»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π² ΠΠ‘ (ΠΎΠΊΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΠ‘ Windows 7 ΠΈΠ»ΠΈ Π½ΠΎΠ²Π΅Π΅) Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅.
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠ°ΠΊΠΎΠΌΡ Π΄Π΅ΡΠ΅ΠΊΡΠΎΡΡ Π±ΡΠ»ΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΆΡΡΡΠΊΠΈΠΌΠΈ:
ΠΠΎΠ΄ ΠΊΠ°ΡΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅ΠΊΡΠΎΡΠ° Π½Π° C# (Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ Β Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ C++) ΠΈ ΠΏΡΠΈΠ»ΠΈΡΠ½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π½Π΅ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Visual Studio 2015 Community.
Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ
1 ΡΡΠΎΠ²Π΅Π½Ρ. ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠ°ΡΡΠΈ ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΎΡΠΈΠΈ ΠΊΠ°ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ
ΠΡΠ΅ΠΆΠ΄Π΅, ΡΠ΅ΠΌ ΠΏΡΡΠ°ΡΡΡΡ ΠΏΠΈΡΠ°ΡΡ Π΄Π΅ΡΠ΅ΠΊΡΠΎΡ ΡΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ Π² Π²Π°ΠΊΡΡΠΌΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΊΡΠ°ΡΠΊΠΎ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠΈΡΡ, ΠΊΠ°ΠΊ Π² ΡΠ°ΠΌΠΊΠ°Ρ
Π·Π°Π΄Π°ΡΠΈ ΠΌΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ ΡΠ΅ΡΠΌΠΈΠ½ Β«Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π°Β».
ΠΠΎΠ½ΡΡΠΈΠ΅ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡ Π½Π° Π΄Π²Π΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ (1):
ΠΠΎ Π²ΡΠΎΡΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΡΡΠ°Π·Ρ Π²Π²Π΅Π΄ΡΠΌ Π΄Π²Π° ΡΠ΅ΡΠΌΠΈΠ½Π°: ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠ°Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΈ ΠΠ Π΄Π»Ρ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ (Ρ ΠΎΡΡΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, host) ΠΈ ΡΠΌΡΠ»ΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° (Π³ΠΎΡΡΠ΅Π²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, guest).
ΠΡΠΈ ΡΡΠΎΠΌ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ Π² ΡΠΎΠ»ΠΈ Β«Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡΒ» ΠΌΠΎΠ³ΡΡ Π²ΡΡΡΡΠΏΠ°ΡΡ:
ΠΡΠΎΠ³ ΡΠ΅Π³ΠΎ ΡΠΊΡΠΊΡΡΡΠ°: Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠ°ΡΡΠΈ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄Π΅ΡΠ΅ΠΊΡΠΎΡΠ° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ Π½Π°Ρ Π±ΡΠ΄ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠΈΠ²Π½Π°Ρ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ (ΡΠΎ Π΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΡΡΠΊ Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ Hyper-V, VirtualBox ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ Π½Π°ΡΠΈΠ²Π½ΡΡ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ). ΠΡΠΈ ΡΡΠΎΠΌ Π΄Π°Π»Π΅Π΅ ΡΠ΅ΡΠΌΠΈΠ½ Β«Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π°Β» ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΡΠ°ΠΊΡΠΎΠ²Π°ΡΡ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Ρ ΡΠ°ΠΉΡΠ° VMWare: Β«ΡΡΠΎ ΡΡΡΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΠ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΒ» (2).
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΠ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· Windows Management Instrumentation (WMI)
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ΅Π»Ρ (ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΡΠ° ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ Ρ ΡΠ°ΡΡΠΈΡΠ½ΠΎΠΉ ΡΠΌΡΠ»ΡΡΠΈΠ΅ΠΉ) Π±ΡΠ»Π° Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΡΡΠΎΡΠ½Π΅Π½Π°, Π½Π°ΠΉΠ΄ΡΠΌ ΡΠ°ΠΌΡΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° (Π΄Π°Π»Π΅Π΅ Π΄Π»Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ ΠΠ) ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΎΡΠ»ΠΈΡΠΈΡΡ Π·Π°ΠΏΡΡΠΊ ΠΠ‘ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΆΠ΅Π»Π΅Π·Π΅ ΠΎΡ Π·Π°ΠΏΡΡΠΊΠ° Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ ΡΡΠΈΡ ΠΠ.
ΠΡΠΎΡΠΈΡΠ°Π² Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²ΡΡΡΡΠ°Π½Π½ΡΠ΅ ΡΠ΅ΠΊΠ»Π°ΠΌΠ½ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π² Π³ΠΎΠ»ΠΎΠ²Π΅ Π²ΡΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ Π½Π΅ΠΊΠ°Ρ ΠΎΠ±ΡΠ°Ρ ΡΡ Π΅ΠΌΠ° ΠΈΡ ΡΠ°Π±ΠΎΡΡ (ΡΠ°Π·ΡΠΌΠ΅Π΅ΡΡΡ ΡΡ Π΅ΠΌΠ° ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π° Π½Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²):
ΠΠΎΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΏΠΎΡΡΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Β«Π³ΠΎΡΡΠ΅Π²ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡΒ» (guest additions) Β ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ², Π΄Π°ΡΡΠΈΡ
Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΡ
ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π·Π° ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ ΠΠ‘ (ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°, Π° Π½Π΅ Π·Π°Π²ΠΈΡΠ»Π° Π»ΠΈ Π³ΠΎΡΡΠ΅Π²Π°Ρ ΠΠ‘, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ ΠΠ‘ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, «ΠΎΠ±ΡΠ°Ρ» ΠΌΡΡΠΊΠ° Π΄Π»Ρ Ρ
ΠΎΡΡΠΎΠ²ΠΎΠΉ ΠΈ Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ ΠΠ‘). ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊΠ°ΠΊ ΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΡΠ°ΠΊΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΎ, Π΅ΡΠ»ΠΈ, ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΠ΅ΠΊΠ»Π°ΠΌΠ΅, Β«ΠΠ Β ΡΡΠΎ ΡΡΡΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΠΒ»?
ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎ Π³ΠΎΡΡΠ΅Π²ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π½Π° Π³ΠΎΡΡΠ΅Π²ΡΡ ΠΠ‘, ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΡΡΡΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ Ρ Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠΎΠΌ, Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠΌ Π² Ρ ΠΎΡΡΠΎΠ²ΠΎΠΉ ΠΠ‘. Π’ΠΎ Π΅ΡΡΡ Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΠ ΡΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ°ΠΊΠΈΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ Β ΠΎΠ½Π° Π΄ΠΎΠΊΠ°ΠΆΠ΅Ρ, ΡΡΠΎ ΠΠ‘ Π·Π°ΠΏΡΡΠ΅Π½Π° Π½Π° ΠΠ! ΠΡΠ°Π²Π΄Π°, ΠΏΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ Π·Π°Π΄Π°ΡΠΈ Π΄ΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ Π½Π°Π΄ΠΎ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΠΈΠ·-ΠΏΠΎΠ΄ User-Mode Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ².
Π‘ΡΠ°Π·Ρ Π²ΡΡΠΈΡΠΎΠ²ΡΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΡΠ° Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ:
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΊΡΠΈΡΠ΅ΡΠΈΠ΅Π² ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π±ΡΠ»ΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π² ΡΡΠ°ΡΡΠ΅ 2013 Π³ΠΎΠ΄Π° Π² ΠΆΡΡΠ½Π°Π»Π΅ Π₯Π°ΠΊΠ΅Ρ (3),Β Π²ΠΎΠ·ΡΠΌΡΠΌ ΡΡΠ°ΡΡΡ Π·Π° ΠΎΡΠ½ΠΎΠ²Ρ. Π Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΎΠ± ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ ΠΠ‘ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠΌ Windows Management Instrumentation (WMI) Β Π΄ΠΎΡΠ»ΠΎΠ²Π½ΠΎ «ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Windows». Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΠ΅ΡΠ΅Π· WMI ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ, Π±ΡΡΡΡΠΎ ΠΈ Π±Π΅Π· ΠΏΡΠ°Π² Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΠΏΠΎΠ»ΡΡΠΈΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΠΈΠ΄ΠΈΡ ΠΠ‘.
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· WMI Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π·Π°ΠΏΡΠΎΡ Π½Π° ΡΠ·ΡΠΊΠ΅ WQL (WMI Query Language), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎ ΡΡΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΡΠ½Π½ΡΠΌ SQL. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΠ΅Π· WMI ΠΈΠΌΠ΅ΡΡΡΡΡΡ Π² ΠΠ‘ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ , ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ:
ΠΡΠ²Π΅Ρ Π½Π° ΡΡΠΎΡ Π·Π°ΠΏΡΠΎΡ Β Π½Π°Π±ΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΈΠΏΠ° Win32_Processor Ρ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌΠΈ Π½Π°Π·Π²Π°Π½ΠΈΡΠΌΠΈ ΠΏΠΎΠ»Π΅ΠΉ (ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠΌ. Π² 4). Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ Π½Π°ΠΌ Π½Π΅ ΡΡΠ΅Π±ΡΡΡΡΡ Π²ΡΠ΅-Π²ΡΠ΅ ΠΏΠΎΠ»Ρ, Π²ΠΌΠ΅ΡΡΠΎ * ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅. Π WQL-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ SELECT, ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ SQL, ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ WHERE, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π΅ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ±ΠΎΡΠΊΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ, Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΏΠΎΠ»ΡΡ ΠΊΠΎΡΠΎΡΡΡ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ.
ΠΠ»Ρ «Π·Π°ΡΡΠ°Π²ΠΊΠΈ» Π½Π°ΡΡΠΈΠΌΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· WMI-ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠΈΠΏΠΎΠ² (Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠ΅ Π² ΠΠ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²Π·ΡΡΡ ΠΈΠ· 3):
WMI-ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈ Π΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° | Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ Π½Π° WQL-Π·Π°ΠΏΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² | ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ | |
---|---|---|---|
Win32_Processor | |||
Manufacturer | Π ΡΠ»ΡΡΠ°Π΅ VirtualBox ΡΠ°Π²Π΅Π½ ‘VBoxVBoxVBox’, Π² ΡΠ»ΡΡΠ°Π΅ VMWare Β ‘VMwareVMware’, Π² ΡΠ»ΡΡΠ°Π΅ Parallels Β ‘prl hyperv ‘. | ||
Win32_BaseBoard | |||
Manufacturer | Π ΡΠ»ΡΡΠ°Π΅ Hyper-V ΡΠ°Π²Π΅Π½ ‘Microsoft Corporation’ ΠΏΡΠΈ ΡΠΎΠΌ, ΡΡΠΎ Microsoft ΠΌΠ°ΡΠ΅ΡΠΈΠ½ΡΠΊΠΈΠ΅ ΠΏΠ»Π°ΡΡ Π½Π΅ Π²ΡΠΏΡΡΠΊΠ°Π΅Ρ (ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, Π° ΡΡΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π½Π° ΠΏΠ»Π°Π½ΡΠ΅ΡΠ°Ρ Microsoft Surface?). | ||
Win32_DiskDrive | |||
PNPDeviceID | Π ΡΠ»ΡΡΠ°Π΅ VirtualBox ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ‘VBOX_HARDDISK’, Π² ΡΠ»ΡΡΠ°Π΅ VMWare ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ‘VEN_VMWARE’. | ||
Win32_NetworkAdapter | |||
MACAddress | PhysicalAdapter=1 | ΠΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ ΠΏΠΎ ΡΡΡΠΌ ΡΡΠ°ΡΡΠΈΠΌ Π±Π°ΠΉΡΠ°ΠΌ MAC-Π°Π΄ΡΠ΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ Β ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½ Π½Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ (ΡΠΎ Π΅ΡΡΡ Π΅ΡΠ»ΠΈ Π°Π΄Π°ΠΏΡΠ΅Ρ Ρ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠΌ PhysicalAdapter=1 Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ MAC-Π°Π΄ΡΠ΅Ρ ΠΈΠ· ΠΏΡΠ»Π° VMWare Β ΡΠΎ Ρ Π²ΡΡΠΎΠΊΠΎΠΉ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ»Π° Π·Π°ΠΏΡΡΠ΅Π½Π° Π½Π° ΠΠ). | |
Win32_Process | |||
Name | ΠΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π³ΠΎΡΡΠ΅Π²ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ Π½Π° ΠΠ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ. |
Π Π΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΎΠ± ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅ΡΠ΅Π· WMI Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π² Π²ΠΈΠ΄Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ TTC.Utils.Environment.
Π‘ΡΡΡΠΊΡΡΡΠΈΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π₯ΠΎΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΌΠΎΠ³ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:
ΠΈ Π½Π΅ Π²ΠΎΠ»Π½ΠΎΠ²Π°Π»ΡΡ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ WMI, ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ²Π΅ΡΠ° Π² ΡΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠ·ΡΠΊΠ° C#.
Π§ΡΠΎ ΠΆ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΎΠ΅ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ.
Π’Π΅ΠΏΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΡ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΡΡΠ½ΠΎΡΡΠΈ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Π΄Π»Ρ Π΄Π΅ΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΈΠ· WMI-ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΈΠΏΠ° Win32_BaseBoard:
ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π³Π»Π°Π²Π½ΡΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° (Π»Π΅Π½ΡΡ) ΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠΉ DTO ΠΏΡΠΎΡΡΠΎ ΠΎΡΠΌΠ΅ΡΠΈΠΌ Π°ΡΡΠΈΠ±ΡΡΠΎΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π°ΡΡΠΈΠ±ΡΡΠΎΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΌ ΡΠ²ΡΠ·Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΈ ΠΏΠΎΠ»Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° WML-Π·Π°ΠΏΡΠΎΡΠ°:
Π Π°Π·ΠΌΠ΅ΡΠΈΠ² ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΡΡΠ½ΠΎΡΡΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌΠΈ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ, ΠΏΠΎΠ»ΡΡΠΈΠΌ:
ΠΡΡΠ°Π»ΠΎΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ. Π£Π²Π΅ΡΠ΅Π½, Π²Ρ ΠΎΠ±ΡΠ°ΡΠΈΠ»ΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΠΎΠ΄Π° Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ WQL-ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π·Π°ΠΏΡΠΎΡΠ° Π²ΡΠ½Π΅ΡΠ΅Π½Ρ Π² internal-ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ. ΠΡΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΡΠΎΠ±Ρ Π½Π΅ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ Π² ΠΊΠ»Π°ΡΡΠ΅ Π·Π°ΠΏΡΠΎΡΠ°. ΠΡΡΠ°ΡΠΈ, ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΠΏΠΎΠ±ΠΎΡΠ½ΡΠΉ ΡΡΡΠ΅ΠΊΡ Β Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΊΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²Ρ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈΠ· WMI Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ WMI-ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΠΎΠΊΠ° Π½Π΅ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅, Π² ΠΊΠ°ΠΊΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΊΠ°ΠΊΠΎΠΉ ΡΡΡΠ½ΠΎΡΡΠΈ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡΡΡ.
ΠΡΠΈ ΡΠ°ΠΊΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ² *Query Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° Π½Π΅ΠΏΡΠΈΡΡΠ½ΠΎΡΡΡ: Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ WHERE-ΡΠ°ΡΡΠΈ WML-Π·Π°ΠΏΡΠΎΡΠ° Π²Π½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡΠ°. ΠΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΠΎ ΡΡΠ°ΡΠΈΠ½ΠΊΠ΅ ΠΈ ΡΡΡΠΊΠ°ΠΌΠΈ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²:
Π₯ΠΎΡΠΎΡΠΎ: Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ ΡΡΡΠ½ΠΎΡΡΡΠΌ ΡΠ°ΡΠΊΠΈΠ΄Π°Π»ΠΈ, Π·Π°ΠΏΡΠΎΡΡ ΠΏΠΈΡΠ°ΡΡ Ρ Π³ΡΠ΅Ρ ΠΎΠΌ-ΠΏΠΎΠΏΠΎΠ»Π°ΠΌ Π½Π°ΡΡΠΈΠ»ΠΈΡΡ, ΠΎΡΡΠ°Π»ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ΅ΡΠ²ΠΈΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ:
ΠΠ°ΡΠ° ΡΠ»ΠΎΠ² ΠΊΠ°ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° WmiService.Extract
Π£ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² WMI ΠΎΠ±ΡΡΠ½ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ²ΠΎΠΉΡΡΠ² (ΠΏΡΠΈΡΠ΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ NULL). Π ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΡΡΠΎ Π² ΡΠ°ΠΌΠΊΠ°Ρ Π·Π°Π΄Π°ΡΠΈ Π²ΡΠ³ΡΡΠΆΠ°ΡΡ ΠΈΠ· WMI ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ²ΠΎΠΉΡΡΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π½Π°ΡΠ°ΡΡ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° ΡΠ²ΠΎΠΉΡΡΠ² ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅ΠΉ ΡΡΡΠ½ΠΎΡΡΠΈ. ΠΠ°Π»Π΅Π΅, ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π°ΡΡΠΈΠ±ΡΡΠ° WmiResultAttribute ΠΌΡ ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π·Π°ΠΏΡΠΎΡΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ Π² Π°ΡΡΠΈΠ±ΡΡΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ². ΠΡΠΈ ΡΡΠΎΠΌ, Π΅ΡΠ»ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΡΡΠ½ΠΎΡΡΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Convert.ChangeType Π½Π΅ ΡΠΏΡΠ°Π²ΠΈΡΡΡ ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΡΠΈΠΏ Π½Π΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π½Π°ΠΌ Ρ ΠΎΡΠ΅ΡΡΡ, ΠΌΡ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ²ΠΎΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ (ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π΄Π»Ρ ΡΠΈΠΏΠΎΠ² System.DateTime ΠΈ System.Guid).
ΠΡΡΠ°ΡΠΈ, Π±ΡΠ»ΠΎ Π±Ρ Π΅ΡΡ Π»ΡΡΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Extract Π½Π° Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π°: ΠΏΠ΅ΡΠ²ΡΠΉ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· ΡΠΈΠΏΠ° ΠΊΠ»Π°ΡΡΠ°, Π²ΡΠΎΡΠΎΠΉ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ (ΠΈΠ½Π°ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ QueryAll Π΄Π»Ρ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π΄Π΅Π»Π°Π΅Ρ Π½Π΅Π½ΡΠΆΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ Π΅Π³ΠΎ ΡΠΈΠΏΠ°). ΠΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π΄Π»Ρ ΡΠ΅Π»Π΅ΠΉ Π΄Π΅ΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΠΊΠΈ ΠΌΡ Π²ΡΡΠ΄ Π»ΠΈ Π±ΡΠ΄Π΅Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ 10 ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π·Π° ΠΎΠ΄ΠΈΠ½ Π·Π°ΠΏΡΠΎΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΡΠΏΠΈΡΠ°ΡΡ ΡΡΡ Π·Π°Π΄Π°ΡΡ Ρ ΠΏΠΎΠΌΠ΅ΡΠΊΠΎΠΉ «Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ, ΠΈΠ±ΠΎ ΠΏΡΠΈΡΠΎΠ΄Π½Π°Ρ Π»Π΅Π½Ρ». ΠΠΎ Π΅ΡΠ»ΠΈ Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ Π΄ΠΎΠΉΠ΄ΡΡ ΡΡΠΊΠΈ Π΄ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Β Ρ ΡΠ°Π΄ΠΎΡΡΡΡ ΠΏΡΠΈΠΌΡ Π²Π°ΡΡ Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΡ.
ΠΠΎΡΠ»Π΅ΡΠ»ΠΎΠ²ΠΈΠ΅
Π§ΡΠΎΠ±Ρ Π½Π΅ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡ ΡΡΡ ΡΠ°ΡΡΡ ΡΡΠ°ΡΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ, ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΠ°ΠΌΠΎΠ΅ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ Π΄Π΅ΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½ ΡΠΈΡΠΌ VMWare, Microsoft, Parallels ΠΈ Oracle Π½Π° ΠΎΡΠΎΠ²Π΅ Π²ΡΡΠ΅ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΊΡΠΈΡΠ΅ΡΠΈΠ΅Π².
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Β ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ TTC.Utils.VMDetect ΠΈ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π² Π½ΡΠΌ ΡΠ°ΠΊΠΎΠΉ ΠΊΠ»Π°ΡΡ DemoTrivialVmDetector:
ΠΠ΅ΡΡ ΠΊΠΎΠ΄, Π²ΠΊΠ»ΡΡΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΈ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅Π΅ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²ΡΠ»ΠΎΠΆΠ΅Π½ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π½Π° github, ΠΎΡΠ·ΡΠ²Ρ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΠΌΡ ΡΡΡΠΊΠ° ΡΡΡΡΠΊΡΡΡΠΈΡΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌΠΈ ΠΠ ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ CPUID ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π΄Π΅ΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΆΠ΅ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΠ.
ΠΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ
ΠΡΡΡ Π»ΠΈ ΡΠΏΠΎΡΠΎΠ± ΡΠ·Π½Π°ΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΌΠ°ΡΠΈΠ½Π° Windows, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΡΠ°Π±ΠΎΡΠ°Ρ, Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ»ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ? (Π― ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡ ΠΊ RDP ΠΊ ΠΌΠ°ΡΠΈΠ½Π΅. ΠΡΠ»ΠΈ ΡΡΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π°, ΠΎΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ VMWare).
14 ΠΎΡΠ²Π΅ΡΠΎΠ²
ΠΡΠ»ΠΈ ΡΡΠΎ Windows, ΠΏΡΠΎΡΡΠΎ Π²Π·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° ΡΠΊΡΠ°Π½Ρ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄ ΠΈ ΠΏΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ VMWare.
ΠΡ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΡΡΡΠΎΠΊΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ (ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌ):
ΠΡΠ»ΠΈ ΠΎΠ½ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ VMware, Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΠΎ Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ.
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅:
Π Linux Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΡΠΎ:
ΠΡΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΌΠ°ΡΠΈΠ½Ρ real :
ΠΡΠΎ, Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΏΠΎΡΡΠΈ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ virtual :
ΠΡΠ²Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½, Π½ΠΎ FWIW Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π² powershell:
Β«ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΒ» Π±ΡΠ΄Π΅Ρ Β«Microsoft CorporationΒ», Π° Β«ΠΠΎΠ΄Π΅Π»ΡΒ» Π±ΡΠ΄Π΅Ρ Β«ΠΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉΒ», Π΅ΡΠ»ΠΈ ΡΡΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π°, ΠΈΠ»ΠΈ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ, Π΅ΡΠ»ΠΈ Π½Π΅Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ. Β«Dell Inc.Β» ΠΈ «PowerEdge R210 II» ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
ΠΠ΄ΠΈΠ½ (ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ) ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΠ΅Π· WMI /WBEM. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ root CIM2 ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠ»Π°ΡΡΡ Baseboard (ΠΏΠΎΠ»Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ BIOS), ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Β«ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎΒ» system.Γ ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ ΡΠ°ΡΡΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ½ΡΠΊΠΎΠΉ ΠΏΠ»Π°ΡΠ΅ ΠΈ ΡΠ°ΡΡΠΈ β ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅, ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΡΠ΅ΡΠΈΠΉΠ½ΠΎΠΌ Π½ΠΎΠΌΠ΅ΡΠ΅ ΠΈ Ρ. Π΄.
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ΅Π°Π½ΡΠ° PowerShell:
ΠΡΠ΅ ΠΏΡΠΎΡΠ΅ β wmic /node: bios get serialnumber
ΠΡΠ΅, ΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΡΠΈΠΉΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ Π² ΡΡΠΈΠ»Π΅ Dell, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΌ.
ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ Π²Π΅ΡΠ½Π΅Ρ Β«VMware-42 22 26 a8 dd 6e e3 b3-2e 03 fc 2c 92 ae 2e 89Β», Π΅ΡΠ»ΠΈ ΡΡΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π°.
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ» ΡΠΎΡ ΠΆΠ΅ Π²ΠΎΠΏΡΠΎΡ, ΠΈ Π²ΡΡΡΠ½ΠΈΠ»ΠΎΡΡ, ΡΡΠΎ Π² ΠΈΠΌΠ΅Π½ΠΈ Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Ρ Β«VMΒ», Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ VMWareTray.exe
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΠ°ΠΊΡ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² VirtualBox, VMware Workstation, Virtual PC ΠΈ Parallels Workstation
ΠΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Ρ ΠΎΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ, ΠΊΡ ΠΌ, Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ Π½Π΅ΠΏΡΠΈΡΡΠ½ΡΠ΅ Π΄ΡΠ΄ΡΠΊΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π»ΠΈ ΠΏΠΎΠ΄ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ. ΠΠ΅ΡΠ΅ΠΊΡ Π²ΠΈΡΡΡΠ°Π»ΠΎΠΊ β ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠ΄Π° ΡΠΎΡΡΠ°, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°ΡΠ° ΡΡΠ±ΡΠΈΠΊΠ° Π½Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π±Π΅Π· ΠΎΠ±Π·ΠΎΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ²!
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π»ΡΠ±Π°Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Π½Π΅ΡΠ΅Ρ Π½Π° ΡΠ²ΠΎΠ΅ΠΌ Π±ΠΎΡΡΡ ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π²ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡΠ΅ΡΠ°, ΠΆΠ΅ΡΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠ°, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, Π²Π΅ΡΡΠΈΠΈ BIOS, MAC-Π°Π΄ΡΠ΅ΡΠ° ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΊΠ°ΡΡΡ.
ΠΠΎ-Π²ΡΠΎΡΡΡ , Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ»Π΅Π΄Ρ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π² Π²ΠΈΠ΄Π΅ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
Π-ΡΡΠ΅ΡΡΠΈΡ , Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΊΠΎΠΏΠ°ΡΡΡΡ Π² ΡΠ΅Π΅ΡΡΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ, ΡΠ°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ, Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½.
ΠΡ ΠΈ Π²-ΡΠ΅ΡΠ²Π΅ΡΡΡΡ , Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΡΡΠ°Π²Π»ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΡ.
Π§ΡΠΎ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠΈΡ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠ² Π½Π°Π»ΠΈΡΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΡ Π² ΡΠ²ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π³ΠΎΡΠΏΠΎΠΆΠΎΠΉ Π ΡΡΠΊΠΎΠ²ΡΠΊΠΎΠΉ (Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡ IDT, GDT ΠΈ LDT, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ), ΡΠΎ Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ ΡΡΠΈ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΈ ΡΡΡΠ΄Π½ΠΎ ΠΏΠΎΠ΄Π΄Π°ΡΡΡΡ Π°Π½Π°Π»ΠΈΠ·Ρ ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΌΡ Π·Π½Π°ΠΌΠ΅Π½Π°ΡΠ΅Π»Ρ, Π³Π»Π°Π²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΠ·-Π·Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ»ΠΈΠΊΠΎΡΡΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ².
ΠΠ°ΡΠ½Π΅ΠΌ, ΠΏΠΎΠΆΠ°Π»ΡΠΉ, Ρ ΠΆΠ΅ΡΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠ°. ΠΡΠ»ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΆΠ΅ΡΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠ° Π² Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ² Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅, ΡΠΎ Π² Π΅Π³ΠΎ ΡΠΎΡΡΠ°Π²Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΡΡΡΠΎΡΠΊΠΈ:
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ·Π½Π°ΡΡ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΆΠ΅ΡΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠ° β ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ° Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«0Β» Π² Π²Π΅ΡΠΊΠ΅ ΡΠ΅Π΅ΡΡΡΠ° HKLMHARDWARESYSTEMCurrentControlSetServicesDiskEnum.
Π ΡΡΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡΡΡ Π²ΡΠ΅ Π΄ΠΈΡΠΊΠΎΠ²ΡΠ΅ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΈ ΠΏΠ΅ΡΠ²ΡΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π· Π² ΠΊΠ»ΡΡΠ΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«0Β», Π±ΡΠ΄Π΅Ρ ΡΠΎΡ Π΄ΠΈΡΠΊ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΆΠ΅ΡΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠ° VirtualBox Π² ΡΠ΅Π΅ΡΡΡΠ΅
Π₯Π°ΠΊΠ΅Ρ #174. Π‘ΠΎΠ±ΠΈΡΠ°Π΅ΠΌ ΠΊΠ²Π°Π΄ΡΠΎΠΊΠΎΠΏΡΠ΅Ρ
ΠΠ°ΠΊ ΡΠΈΡΠ°ΡΡ ΡΠ΅Π΅ΡΡΡ, Ρ Π΄ΡΠΌΠ°Ρ, ΡΡ Π·Π½Π°Π΅ΡΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ½Π°ΡΠ°Π»Π° API RegOpenKeyEx Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°, Π΄Π°Π»Π΅Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ RegQueryValueEx ΡΠΈΡΠ°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π²ΠΎΡ ΡΠ°ΠΊ:
ΠΠ°Π»Π΅Π΅ Π²ΡΠ΅ ΠΏΡΠΎΡΡΠΎ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ strstr Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π½ΡΠΆΠ½ΡΡ Π½Π°ΠΌ ΡΡΡΠΎΠΊ Π² ΡΡΠΈΡΠ°Π½Π½ΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ ΠΈ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, Π΄Π΅Π»Π°Π΅ΠΌ Π²ΡΠ²ΠΎΠ΄. ΠΠ΅ΡΡΠΈΡ BIOS ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² ΠΊΠ»ΡΡΠ΅ Β«SystemProductNameΒ» Π² Π²Π΅ΡΠΊΠ΅ HKLMHARDWAREDESCRIPTIONSystemBIOS. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π΄Π»Ρ VMware ΡΠ°ΠΌ Π±ΡΠ΄Π΅Ρ Π»Π΅ΠΆΠ°ΡΡ ΡΡΡΠΎΠΊΠ° Β«VMware Virtual PlatformΒ», Π° Π΄Π»Ρ VirtualBox β Β«VBOX β1Β».
ΠΡΠΎΡΠΈΡΠ°ΡΡ ΡΡΠΎ Π²ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ΅ ΡΠ΅Ρ ΠΆΠ΅ API β RegOpenKeyEx ΠΈ RegQueryValueEx.
ΠΠ΅ΡΡΠΈΡ BIOS Parallels Workstation Π² ΡΠ΅Π΅ΡΡΡΠ΅
ΠΠ°Π½Π½ΡΠ΅ ΠΎ Π²ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡΠ΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π³Π»ΡΠ΄Π΅ΡΡ Π² HKLMSystemCarrentControlSetEnumPCI. Π ΡΡΠΎΠΉ Π²Π΅ΡΠΊΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΎ Π²ΡΠ΅, ΡΡΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΎ ΠΊ ΡΠΈΠ½Π΅ PCI, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡΠ°. ΠΠ»Ρ VirtualPC ΡΡΠΎ ΡΡΡΠΎΡΠΊΠ° Π²ΠΈΠ΄Π° VEN_5333&DEV_8811&SUBSYS_00000000&REV_00, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π²ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡΠ΅Ρ S3 Trio 32/64, ΡΠΌΡΠ»ΠΈΡΡΠ΅ΠΌΡΠΉ Π²ΠΈΡΡΡΠ°Π»ΠΊΠΎΠΉ ΠΎΡ Microsoft β Π½Π° ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΆΠ΅Π»Π΅Π·Π΅ ΡΠ°ΠΊΠΎΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π½ΡΠ½ΡΠ΅ Π΄Π½Π΅ΠΌ Ρ ΠΎΠ³Π½Π΅ΠΌ Π½Π΅ ΡΡΡΠΊΠ°ΡΡ (Π° Ρ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠ°Ρ Π±ΡΠ»Π° Π² ΠΊΠΎΠ½ΡΠ΅ ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ Π²Π΅ΠΊΠ°. β ΠΡΠΈΠΌ. ΡΠ΅Π΄.). ΠΠ»Ρ VirtualBox Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡΠ° ΠΎΠΏΠΈΡΠ°Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ VEN_80EE&DEV_BEEF&SUBSYS_00000000&REV_00, ΡΡΠΎ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Β«VirtualBox DisplayΒ», Π° Ρ Parallels Workstation β ΡΡΡΠΎΠΊΠ° VEN_1AB8&DEV_4005&SUBSYS_04001AB8&REV_00 ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π²ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡΠ΅Ρ Β«Parallels DisplayΒ».
ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ, Π² VirtualBox ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΡΡΡΠΎΠΊΡ VEN_80EE&DEV_CAFE&SUBSYS_00000000&REV_00, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Π½Π΅ΠΊΠΈΠΉ Β«VirtualBox DeviceΒ», Π° Ρ Parallels Workstation ΡΡΡΠΎΠΊΠΈ VEN_1AB8&DEV_4000&SUBSYS_04001AB8&REV_00 ΠΈ VEN_1AB8&DEV_4006&SUBSYS_04061AB8&REV_00, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠ΅ Β«Parallels Tools DeviceΒ» ΠΈ Β«Parallels Memory ControllerΒ» ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ: ΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΎΡΠΊΡΡΡΡ Π½ΡΠΆΠ½ΡΠΉ Π½Π°ΠΌ ΠΊΠ»ΡΡ, ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΡΠΎ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ ΡΡΠΈΠΌ ΠΊΠ»ΡΡΠΎΠΌ, Π² Π½Π°Π»ΠΈΡΠΈΠΈ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΎ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ:
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ cpuid. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΡΠΊΠΎΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅. ΠΠΈΠ΄ Π²ΡΠ΄Π°Π²Π°Π΅ΠΌΠΎΠΉ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° EAX. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡΡ EBX, ECX ΠΈ EDX. ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΏΡΠΎ ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ Π² Π»ΡΠ±ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅. ΠΠ»Ρ Π½Π°ΡΠΈΡ ΡΠ΅Π»Π΅ΠΉ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΠ² Π² ΡΠ΅Π³ΠΈΡΡΡ EAX Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0x40000000:
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° VMware Workstation Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ID_1, ID_2 ΠΈ ID_3 Π±ΡΠ΄ΡΡ Π·Π°ΠΏΠΈΡΠ°Π½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ 0x61774d56, 0x4d566572 ΠΈ 0x65726177 ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ (Π² ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΡΡΠΎ Π½Π΅ ΡΡΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ Β«VMwareVMwareΒ»), Π½Π° VirtualBox Π² ID_1 ΠΈ Π² ID_2 Π±ΡΠ΄Π΅Ρ Π»Π΅ΠΆΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0x00000340, Π° Π½Π° Parallels Workstation Π² ID_1 0x70726c20, Π² ID_2 β 0x68797065 ΠΈ Π² ID_3 β 0x72762020 (ΡΡΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΡΠΎΠΊΠ΅ Β«prl hypervΒ»).
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ MAC-Π°Π΄ΡΠ΅ΡΠ° Π΄Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΊΠ°ΡΡΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π΅ ΡΠ°ΠΌΡΠΉ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± (ΠΈΠ±ΠΎ MAC-Π°Π΄ΡΠ΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ-ΡΠ°ΠΊΠΈ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ), Π½ΠΎ ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π΅Π³ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π΄Π»Ρ Π΄Π΅ΡΠ΅ΠΊΡΠ° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ.
Π’Ρ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° Π·Π½Π°Π΅ΡΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΡΠΈ Π±Π°ΠΉΡΠ° MAC-Π°Π΄ΡΠ΅ΡΠ° ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΊΠ°ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π΅Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ. ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½ Π² ΡΡΠΎΠΌ ΠΏΠ»Π°Π½Π΅ Π½Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅:
ΠΡΡΠ°ΡΠΈΡΡ ΡΡΠΈ ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΡΠΈ Π±Π°ΠΉΡΠ° ΠΈΠ· MAC-Π°Π΄ΡΠ΅ΡΠ° Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ API-ΡΡΠ½ΠΊΡΠΈΡ GetAdaptersInfo:
ΠΠ»Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ ΡΡΠ΅Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ ΠΊ Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ VBoxGuestAddition Π΄Π»Ρ VirtualBox ΠΈΠ»ΠΈ Parallels Tools Π΄Π»Ρ Parallels Workstation. ΠΠ΅Π· ΡΡΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ ΡΠ°Π±ΠΎΡΠ° Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΡΡΠ΄Π½ΠΈΡΠ΅Π»ΡΠ½Π° (Π½ΠΈ ΡΠ΅Π±Π΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π° ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°, Π½ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ USB-Π΄Π΅Π²Π°ΠΉΡΠ°ΠΌΠΈ, Π½ΠΈ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ). Π ΠΎΠ±ΡΠ΅ΠΌ, Π²ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ Π²ΠΈΡΡΡΠ°Π»ΠΎΠΊ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ Π±Π΅Π· ΡΡΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ. Π ΡΡΠΈ ΡΠ°ΠΌΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΎΡΠ΅Π½Ρ Π·Π°ΠΌΠ΅ΡΠ½ΡΠΉ ΡΠ»Π΅Π΄ Π² Π²ΠΈΠ΄Π΅ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²:
ΠΠ»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΌΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ CreateToolhelp32Snapshot, Process32First ΠΈ Process32Next:
ΠΠΎΠΌΠΈΠΌΠΎ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ°ΠΌΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π΄Π΅ΠΌΠ°ΡΠΊΠΈΡΡΡΡΠΈΠΌ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠΌ ΠΌΠΎΠ³ΡΡ ΡΡΠ°ΡΡ ΠΎΠΊΠ½Π°, ΠΎΡΠΊΡΡΡΡΠ΅ ΡΡΠΈΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ. ΠΠΊΠΎΠ½ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈ Π²ΡΠ΅ ΠΈΡ ΠΌΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ, Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠΌΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ Π΄Π²ΡΠΌΡ. ΠΡΠ°ΠΊ:
ΠΡΠΊΡΡΡΡΠ΅ ΠΎΠΊΠ½Π° Π΄Π»Ρ VMware (ΠΊΡΠ°ΡΠ½ΡΠΌ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΎ ΠΎΠΊΠ½ΠΎ ΠΊΠ»Π°ΡΡΠ° VMSwitchUserControlClass)
ΠΠ°ΠΉΡΠΈ ΠΎΠΊΠ½ΠΎ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ β Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ FindWindow:
ΠΠΎΠΌΠΈΠΌΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ ΠΎΠΊΠΎΠ½, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΡ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΠ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Β«ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅Β» ΠΎΠ±ΡΠ΅ΠΊΡΡ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠΊΠΎΠΏΠ°ΡΡΡΡ Π² Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ ΠΠ‘ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ WinObj ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠΉ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π²ΠΎΡ ΡΠ°ΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ:
Β«ΠΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅Β» ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² VirtualBox
ΠΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ Β«ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎΒ» ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΎΡΠΊΡΡΡΡ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ CreateFile:
ΠΠΎΠΌΠΈΠΌΠΎ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠ² Π½Π°Π»ΠΈΡΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ, Π² ΡΠ΅Π΅ΡΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ»Π΅Π΄Ρ, ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΠΈΠ½Π°ΠΌΠΈ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ Π±Π°Π·ΠΈΡΡΡΡΡΡ Π² Π²Π΅ΡΠΊΠ΅ HKLMHARDWAREACPIDSDT. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π² ΡΡΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ°ΠΊΠΈΡ Π²ΠΎΡ ΠΊΠ»ΡΡΠ΅ΠΉ:
ΠΡΠΎΠ²Π΅ΡΠΊΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ»ΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎΡΡΠΎ Π΄Π΅Π»Π°Π΅ΠΌ ΠΏΠΎΠΏΡΡΠΊΡ ΠΎΡΠΊΡΡΡΡ Π½ΡΠΆΠ½ΡΠΉ Π½Π°ΠΌ ΠΊΠ»ΡΡ ΠΈ, Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π°, Π΄Π΅Π»Π°Π΅ΠΌ Π²ΡΠ²ΠΎΠ΄ ΠΎ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΠ.
ΠΠ»ΡΡ PRLS__ Π² ΡΠ΅Π΅ΡΡΡΠ΅ Parallels Workstation
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ (Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, VMware ΠΈ Microsoft) ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π½Π°ΡΠΈΡ ΡΠ΅Π»Π΅ΠΉ.
Π Virtual PC ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΈΠ½Π²Π°Π»ΠΈΠ΄Π½ΡΠ΅ (Π½Π΅ Β«ΠΈΠ½Π²Π°Π»ΠΈΠ΄Π½ΡΠ΅Β», Π° Β«Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎ ΠΎΠ΄Π°ΡΠ΅Π½Π½ΡΠ΅Β». Π Π²ΠΎΠΎΠ±ΡΠ΅-ΡΠΎ ΠΎΠ½ΠΈ Β«Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅Β». β ΠΡΠΈΠΌ. ΡΠ΅Π΄.) ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Ρ ΠΎΠΏΠΊΠΎΠ΄Π°ΠΌΠΈ 0x0F, 0x3F, 0x07 ΠΈ 0x0B, ΠΏΠΎΠΏΡΡΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π½Π° Virtual PC Π²ΡΠ΅ ΠΏΡΠΎΠΉΠ΄Π΅Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π·Π°Π΄Π΅ΡΠ΅ΠΊΡΠΈΡΡ Π²ΠΈΡΡΡΠ°Π»ΠΊΡ ΠΎΡ Microsoft:
Π VMware Workstation Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΠ‘ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π±ΡΠΊΠ΄ΠΎΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡΡΠ° Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ 0x5658. ΠΠ»Ρ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π² EAX ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Β«ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΎΠ΅Β» ΡΠΈΡΠ»ΠΎ 0x564d5868 (Π² ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ β Β«VMXhΒ»), Π° Π² ECX Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΠ‘ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠΌΠ°Π½Π΄Π° 0x0A Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²Π΅ΡΡΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ VMware Workstation). ΠΠΎΡΠΎΡΠ΅, Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π²ΡΠ΅ ΡΡΠΎ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΠΊ:
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΡ, ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠ², Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΡΡ Π΄Π»Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΠΈ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΡ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΠΈΠ»ΡΠ½ΠΎ Π³Π»ΡΠ±ΠΎΠΊΠΎ ΠΊΠΎΠΏΠ°ΡΡ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ.
ΠΠ΄Π½ΠΈΠΌ ΠΆΡΡΡ ΠΊΠ°ΠΊΠΈΠΌ ΠΏΡΠΎΡ Π»Π°Π΄Π½ΡΠΌ ΡΠ½Π²Π°ΡΡΠΊΠΈΠΌ ΡΡΡΠΎΠΌ ΠΎΡ Π·Π½Π°ΠΊΠΎΠΌΠΎΠ³ΠΎ ΠΏΡΠΈΠ»Π΅ΡΠ΅Π» Π²ΠΎΠΏΡΠΎΡ Β ΠΊΠ°ΠΊ Π½Π° C# ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π½Π΅ Π·Π°ΠΏΡΡΠ΅Π½Π° Π»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π² ΠΠ‘ (ΠΎΠΊΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΠ‘ Windows 7 ΠΈΠ»ΠΈ Π½ΠΎΠ²Π΅Π΅) Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅.
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠ°ΠΊΠΎΠΌΡ Π΄Π΅ΡΠ΅ΠΊΡΠΎΡΡ Π±ΡΠ»ΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΆΡΡΡΠΊΠΈΠΌΠΈ:
ΠΠΎΠ΄ ΠΊΠ°ΡΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅ΠΊΡΠΎΡΠ° Π½Π° C# (Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ Β Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ C++) ΠΈ ΠΏΡΠΈΠ»ΠΈΡΠ½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π½Π΅ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Visual Studio 2015 Community.
Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ
- 1 ΡΡΠΎΠ²Π΅Π½Ρ. ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠ°ΡΡΠΈ ΠΈ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΡ
ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ
ΡΠ΅ΡΠ΅Π½ΠΈΠΉ:
2 ΡΡΠΎΠ²Π΅Π½Ρ. ΠΠΎΠΈΡΠΊ ΡΡΠ°ΡΠ΅ΠΉ ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ ΠΏΡΠΎ Π΄Π΅ΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΠΊΠ° Π² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Π°Ρ :
3 ΡΡΠΎΠ²Π΅Π½Ρ. ΠΠΎΠΈΡΠΊ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² Ρ Ρ Π°ΠΊΠ΅ΡΡΠΊΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΉ:
1 ΡΡΠΎΠ²Π΅Π½Ρ. ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠ°ΡΡΠΈ ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΎΡΠΈΠΈ ΠΊΠ°ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ
ΠΡΠ΅ΠΆΠ΄Π΅, ΡΠ΅ΠΌ ΠΏΡΡΠ°ΡΡΡΡ ΠΏΠΈΡΠ°ΡΡ Π΄Π΅ΡΠ΅ΠΊΡΠΎΡ ΡΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ Π² Π²Π°ΠΊΡΡΠΌΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΊΡΠ°ΡΠΊΠΎ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠΈΡΡ, ΠΊΠ°ΠΊ Π² ΡΠ°ΠΌΠΊΠ°Ρ
Π·Π°Π΄Π°ΡΠΈ ΠΌΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ ΡΠ΅ΡΠΌΠΈΠ½ Β«Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π°Β».
ΠΠΎΠ½ΡΡΠΈΠ΅ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡ Π½Π° Π΄Π²Π΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ (1):
- ΠΠ΅ΡΠ²Π°Ρ Β Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ². Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΆΠΈΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΏΠΎΡΠ΅ΠΌΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ° Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Dropbox ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°ΠΊΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ²:
ΠΠΎ Π²ΡΠΎΡΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΡΡΠ°Π·Ρ Π²Π²Π΅Π΄ΡΠΌ Π΄Π²Π° ΡΠ΅ΡΠΌΠΈΠ½Π°: ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠ°Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΈ ΠΠ Π΄Π»Ρ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ (Ρ ΠΎΡΡΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, host) ΠΈ ΡΠΌΡΠ»ΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° (Π³ΠΎΡΡΠ΅Π²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, guest).
ΠΡΠΈ ΡΡΠΎΠΌ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ Π² ΡΠΎΠ»ΠΈ Β«Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡΒ» ΠΌΠΎΠ³ΡΡ Π²ΡΡΡΡΠΏΠ°ΡΡ:
- ΠΠ±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ΅ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΌΡΠ»ΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Β ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΠΌΡΠ»ΡΡΠΈΠ΅ΠΉ ΠΈΠ»ΠΈ ΡΠΈΠΌΡΠ»ΡΡΠΈΠ΅ΠΉ. ΠΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΡ
ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ: Bochs, QEMU.
ΠΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ (ΡΠ°ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½Π°Ρ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ) Β ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π°Π·ΠΎΠ²ΡΠΌ ΡΠ°ΡΡΠΈΡΠ½ΠΎΠΉ ΡΠΌΡΠ»ΡΡΠΈΠ΅ΠΉ ΠΈΠ»ΠΈ Π½Π°ΡΠΈΠ²Π½ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ. ΠΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΡ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ: VMWare Workstation, VMWare ESXi, Microsoft Hyper-V, Oracle VirtualBox.
ΠΡΠΎΠ³ ΡΠ΅Π³ΠΎ ΡΠΊΡΠΊΡΡΡΠ°: Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠ°ΡΡΠΈ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄Π΅ΡΠ΅ΠΊΡΠΎΡΠ° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ Π½Π°Ρ Π±ΡΠ΄ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠΈΠ²Π½Π°Ρ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ (ΡΠΎ Π΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΡΡΠΊ Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ Hyper-V, VirtualBox ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ Π½Π°ΡΠΈΠ²Π½ΡΡ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ). ΠΡΠΈ ΡΡΠΎΠΌ Π΄Π°Π»Π΅Π΅ ΡΠ΅ΡΠΌΠΈΠ½ Β«Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π°Β» ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΡΠ°ΠΊΡΠΎΠ²Π°ΡΡ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Ρ ΡΠ°ΠΉΡΠ° VMWare: Β«ΡΡΠΎ ΡΡΡΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΠ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΒ» (2).
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΠ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· Windows Management Instrumentation (WMI)
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ΅Π»Ρ (ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΡΠ° ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ Ρ ΡΠ°ΡΡΠΈΡΠ½ΠΎΠΉ ΡΠΌΡΠ»ΡΡΠΈΠ΅ΠΉ) Π±ΡΠ»Π° Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΡΡΠΎΡΠ½Π΅Π½Π°, Π½Π°ΠΉΠ΄ΡΠΌ ΡΠ°ΠΌΡΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° (Π΄Π°Π»Π΅Π΅ Π΄Π»Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ ΠΠ) ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΎΡΠ»ΠΈΡΠΈΡΡ Π·Π°ΠΏΡΡΠΊ ΠΠ‘ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΆΠ΅Π»Π΅Π·Π΅ ΠΎΡ Π·Π°ΠΏΡΡΠΊΠ° Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ ΡΡΠΈΡ ΠΠ.
ΠΡΠΎΡΠΈΡΠ°Π² Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²ΡΡΡΡΠ°Π½Π½ΡΠ΅ ΡΠ΅ΠΊΠ»Π°ΠΌΠ½ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π² Π³ΠΎΠ»ΠΎΠ²Π΅ Π²ΡΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ Π½Π΅ΠΊΠ°Ρ ΠΎΠ±ΡΠ°Ρ ΡΡ Π΅ΠΌΠ° ΠΈΡ ΡΠ°Π±ΠΎΡΡ (ΡΠ°Π·ΡΠΌΠ΅Π΅ΡΡΡ ΡΡ Π΅ΠΌΠ° ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π° Π½Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²):
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΈΠΌΠ΅ΡΡ ΠΌΠ΅ΡΡΠΎ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° Ρ ΠΎΡΡΠΎΠ²Π°Ρ ΠΠ‘ ΠΈ Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡ Π΅ΡΡΡ Π΅Π΄ΠΈΠ½ΠΎΠ΅ ΡΠΎΠ½ΠΊΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ ΠΎΡΡΠΎΠ²ΠΎΠΉ ΠΠ‘ ΠΈ Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠ° ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ (ΠΏΡΠΈΠΌΠ΅ΡΡ: VMWare ESXi ΠΈΠ»ΠΈ Windows Hyper-V Server).
ΠΠΎΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΏΠΎΡΡΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Β«Π³ΠΎΡΡΠ΅Π²ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡΒ» (guest additions) Β ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ², Π΄Π°ΡΡΠΈΡ
Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΡ
ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π·Π° ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ ΠΠ‘ (ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°, Π° Π½Π΅ Π·Π°Π²ΠΈΡΠ»Π° Π»ΠΈ Π³ΠΎΡΡΠ΅Π²Π°Ρ ΠΠ‘, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ ΠΠ‘ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, «ΠΎΠ±ΡΠ°Ρ» ΠΌΡΡΠΊΠ° Π΄Π»Ρ Ρ
ΠΎΡΡΠΎΠ²ΠΎΠΉ ΠΈ Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ ΠΠ‘). ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊΠ°ΠΊ ΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΡΠ°ΠΊΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΎ, Π΅ΡΠ»ΠΈ, ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΠ΅ΠΊΠ»Π°ΠΌΠ΅, Β«ΠΠ Β ΡΡΠΎ ΡΡΡΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΠΒ»?
ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎ Π³ΠΎΡΡΠ΅Π²ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π½Π° Π³ΠΎΡΡΠ΅Π²ΡΡ ΠΠ‘, ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΡΡΡΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ Ρ Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠΎΠΌ, Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠΌ Π² Ρ ΠΎΡΡΠΎΠ²ΠΎΠΉ ΠΠ‘. Π’ΠΎ Π΅ΡΡΡ Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΠ ΡΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ°ΠΊΠΈΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ Β ΠΎΠ½Π° Π΄ΠΎΠΊΠ°ΠΆΠ΅Ρ, ΡΡΠΎ ΠΠ‘ Π·Π°ΠΏΡΡΠ΅Π½Π° Π½Π° ΠΠ! ΠΡΠ°Π²Π΄Π°, ΠΏΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ Π·Π°Π΄Π°ΡΠΈ Π΄ΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ Π½Π°Π΄ΠΎ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΠΈΠ·-ΠΏΠΎΠ΄ User-Mode Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ².
Π‘ΡΠ°Π·Ρ Π²ΡΡΠΈΡΠΎΠ²ΡΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΡΠ° Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ:
Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, Π΅ΡΠ»ΠΈ Π²Π²Π΅ΡΡΠΈ Π² ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ «detect hyper-v C#» ΠΈΠ»ΠΈ «detect vmware C#», ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π½Π° ΡΡΠΎ ΠΈ Π½Π°ΡΡΠΊΠ°Π΅ΡΡΡΡ, ΠΎΡΡΠ°Π»ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΠΎΠ±ΡΠΈΡΡ.
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΊΡΠΈΡΠ΅ΡΠΈΠ΅Π² ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π±ΡΠ»ΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π² ΡΡΠ°ΡΡΠ΅ 2013 Π³ΠΎΠ΄Π° Π² ΠΆΡΡΠ½Π°Π»Π΅ Π₯Π°ΠΊΠ΅Ρ (3),Β Π²ΠΎΠ·ΡΠΌΡΠΌ ΡΡΠ°ΡΡΡ Π·Π° ΠΎΡΠ½ΠΎΠ²Ρ. Π Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΎΠ± ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ ΠΠ‘ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠΌ Windows Management Instrumentation (WMI) Β Π΄ΠΎΡΠ»ΠΎΠ²Π½ΠΎ «ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Windows». Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΠ΅ΡΠ΅Π· WMI ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ, Π±ΡΡΡΡΠΎ ΠΈ Π±Π΅Π· ΠΏΡΠ°Π² Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΠΏΠΎΠ»ΡΡΠΈΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΠΈΠ΄ΠΈΡ ΠΠ‘.
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· WMI Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π·Π°ΠΏΡΠΎΡ Π½Π° ΡΠ·ΡΠΊΠ΅ WQL (WMI Query Language), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎ ΡΡΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΡΠ½Π½ΡΠΌ SQL. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΠ΅Π· WMI ΠΈΠΌΠ΅ΡΡΡΡΡΡ Π² ΠΠ‘ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ , ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ:
ΠΡΠ²Π΅Ρ Π½Π° ΡΡΠΎΡ Π·Π°ΠΏΡΠΎΡ Β Π½Π°Π±ΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΈΠΏΠ° Win32_Processor Ρ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌΠΈ Π½Π°Π·Π²Π°Π½ΠΈΡΠΌΠΈ ΠΏΠΎΠ»Π΅ΠΉ (ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠΌ. Π² 4). Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ Π½Π°ΠΌ Π½Π΅ ΡΡΠ΅Π±ΡΡΡΡΡ Π²ΡΠ΅-Π²ΡΠ΅ ΠΏΠΎΠ»Ρ, Π²ΠΌΠ΅ΡΡΠΎ * ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅. Π WQL-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ SELECT, ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ SQL, ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ WHERE, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π΅ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ±ΠΎΡΠΊΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ, Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΏΠΎΠ»ΡΡ ΠΊΠΎΡΠΎΡΡΡ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ.
ΠΠ»Ρ «Π·Π°ΡΡΠ°Π²ΠΊΠΈ» Π½Π°ΡΡΠΈΠΌΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· WMI-ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠΈΠΏΠΎΠ² (Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠ΅ Π² ΠΠ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²Π·ΡΡΡ ΠΈΠ· 3):
WMI-ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈ Π΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° | Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ Π½Π° WQL-Π·Π°ΠΏΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² | ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ | |
---|---|---|---|
Win32_Processor | |||
Manufacturer | Π ΡΠ»ΡΡΠ°Π΅ VirtualBox ΡΠ°Π²Π΅Π½ βVBoxVBoxVBoxβ, Π² ΡΠ»ΡΡΠ°Π΅ VMWare Β βVMwareVMwareβ, Π² ΡΠ»ΡΡΠ°Π΅ Parallels Β βprl hyperv β. | ||
Win32_BaseBoard | |||
Manufacturer | Π ΡΠ»ΡΡΠ°Π΅ Hyper-V ΡΠ°Π²Π΅Π½ βMicrosoft Corporationβ ΠΏΡΠΈ ΡΠΎΠΌ, ΡΡΠΎ Microsoft ΠΌΠ°ΡΠ΅ΡΠΈΠ½ΡΠΊΠΈΠ΅ ΠΏΠ»Π°ΡΡ Π½Π΅ Π²ΡΠΏΡΡΠΊΠ°Π΅Ρ (ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, Π° ΡΡΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π½Π° ΠΏΠ»Π°Π½ΡΠ΅ΡΠ°Ρ Microsoft Surface?). | ||
Win32_DiskDrive | |||
PNPDeviceID | Π ΡΠ»ΡΡΠ°Π΅ VirtualBox ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ βVBOX_HARDDISKβ, Π² ΡΠ»ΡΡΠ°Π΅ VMWare ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ βVEN_VMWAREβ. | ||
Win32_NetworkAdapter | |||
MACAddress | PhysicalAdapter=1 | ΠΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ ΠΏΠΎ ΡΡΡΠΌ ΡΡΠ°ΡΡΠΈΠΌ Π±Π°ΠΉΡΠ°ΠΌ MAC-Π°Π΄ΡΠ΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ Β ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½ Π½Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ (ΡΠΎ Π΅ΡΡΡ Π΅ΡΠ»ΠΈ Π°Π΄Π°ΠΏΡΠ΅Ρ Ρ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠΌ PhysicalAdapter=1 Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ MAC-Π°Π΄ΡΠ΅Ρ ΠΈΠ· ΠΏΡΠ»Π° VMWare Β ΡΠΎ Ρ Π²ΡΡΠΎΠΊΠΎΠΉ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ»Π° Π·Π°ΠΏΡΡΠ΅Π½Π° Π½Π° ΠΠ). | |
Win32_Process | |||
Name | ΠΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π³ΠΎΡΡΠ΅Π²ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ Π½Π° ΠΠ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ. |
Π Π΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΎΠ± ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅ΡΠ΅Π· WMI Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π² Π²ΠΈΠ΄Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ TTC.Utils.Environment.
Π‘ΡΡΡΠΊΡΡΡΠΈΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π₯ΠΎΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΌΠΎΠ³ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:
ΠΈ Π½Π΅ Π²ΠΎΠ»Π½ΠΎΠ²Π°Π»ΡΡ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ WMI, ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ²Π΅ΡΠ° Π² ΡΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠ·ΡΠΊΠ° C#.
Π§ΡΠΎ ΠΆ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΎΠ΅ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ.
Π’Π΅ΠΏΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΡ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΡΡΠ½ΠΎΡΡΠΈ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Π΄Π»Ρ Π΄Π΅ΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΈΠ· WMI-ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΈΠΏΠ° Win32_BaseBoard:
ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π³Π»Π°Π²Π½ΡΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° (Π»Π΅Π½ΡΡ) ΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠΉ DTO ΠΏΡΠΎΡΡΠΎ ΠΎΡΠΌΠ΅ΡΠΈΠΌ Π°ΡΡΠΈΠ±ΡΡΠΎΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π°ΡΡΠΈΠ±ΡΡΠΎΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΌ ΡΠ²ΡΠ·Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΈ ΠΏΠΎΠ»Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° WML-Π·Π°ΠΏΡΠΎΡΠ°:
Π Π°Π·ΠΌΠ΅ΡΠΈΠ² ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΡΡΠ½ΠΎΡΡΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌΠΈ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ, ΠΏΠΎΠ»ΡΡΠΈΠΌ:
ΠΡΡΠ°Π»ΠΎΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ. Π£Π²Π΅ΡΠ΅Π½, Π²Ρ ΠΎΠ±ΡΠ°ΡΠΈΠ»ΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΠΎΠ΄Π° Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ WQL-ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π·Π°ΠΏΡΠΎΡΠ° Π²ΡΠ½Π΅ΡΠ΅Π½Ρ Π² internal-ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ. ΠΡΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΡΠΎΠ±Ρ Π½Π΅ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ Π² ΠΊΠ»Π°ΡΡΠ΅ Π·Π°ΠΏΡΠΎΡΠ°. ΠΡΡΠ°ΡΠΈ, ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΠΏΠΎΠ±ΠΎΡΠ½ΡΠΉ ΡΡΡΠ΅ΠΊΡ Β Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΊΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²Ρ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈΠ· WMI Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ WMI-ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΠΎΠΊΠ° Π½Π΅ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅, Π² ΠΊΠ°ΠΊΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΊΠ°ΠΊΠΎΠΉ ΡΡΡΠ½ΠΎΡΡΠΈ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡΡΡ.
ΠΡΠΈ ΡΠ°ΠΊΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ² *Query Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° Π½Π΅ΠΏΡΠΈΡΡΠ½ΠΎΡΡΡ: Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ WHERE-ΡΠ°ΡΡΠΈ WML-Π·Π°ΠΏΡΠΎΡΠ° Π²Π½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡΠ°. ΠΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΠΎ ΡΡΠ°ΡΠΈΠ½ΠΊΠ΅ ΠΈ ΡΡΡΠΊΠ°ΠΌΠΈ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²:
Π₯ΠΎΡΠΎΡΠΎ: Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ ΡΡΡΠ½ΠΎΡΡΡΠΌ ΡΠ°ΡΠΊΠΈΠ΄Π°Π»ΠΈ, Π·Π°ΠΏΡΠΎΡΡ ΠΏΠΈΡΠ°ΡΡ Ρ Π³ΡΠ΅Ρ ΠΎΠΌ-ΠΏΠΎΠΏΠΎΠ»Π°ΠΌ Π½Π°ΡΡΠΈΠ»ΠΈΡΡ, ΠΎΡΡΠ°Π»ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ΅ΡΠ²ΠΈΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ:
ΠΠ°ΡΠ° ΡΠ»ΠΎΠ² ΠΊΠ°ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° WmiService.Extract
Π£ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² WMI ΠΎΠ±ΡΡΠ½ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ²ΠΎΠΉΡΡΠ² (ΠΏΡΠΈΡΠ΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ NULL). Π ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΡΡΠΎ Π² ΡΠ°ΠΌΠΊΠ°Ρ Π·Π°Π΄Π°ΡΠΈ Π²ΡΠ³ΡΡΠΆΠ°ΡΡ ΠΈΠ· WMI ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ²ΠΎΠΉΡΡΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π½Π°ΡΠ°ΡΡ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° ΡΠ²ΠΎΠΉΡΡΠ² ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅ΠΉ ΡΡΡΠ½ΠΎΡΡΠΈ. ΠΠ°Π»Π΅Π΅, ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π°ΡΡΠΈΠ±ΡΡΠ° WmiResultAttribute ΠΌΡ ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π·Π°ΠΏΡΠΎΡΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ Π² Π°ΡΡΠΈΠ±ΡΡΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ². ΠΡΠΈ ΡΡΠΎΠΌ, Π΅ΡΠ»ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΡΡΠ½ΠΎΡΡΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Convert.ChangeType Π½Π΅ ΡΠΏΡΠ°Π²ΠΈΡΡΡ ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΡΠΈΠΏ Π½Π΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π½Π°ΠΌ Ρ ΠΎΡΠ΅ΡΡΡ, ΠΌΡ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ²ΠΎΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ (ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π΄Π»Ρ ΡΠΈΠΏΠΎΠ² System.DateTime ΠΈ System.Guid).
ΠΡΡΠ°ΡΠΈ, Π±ΡΠ»ΠΎ Π±Ρ Π΅ΡΡ Π»ΡΡΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Extract Π½Π° Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π°: ΠΏΠ΅ΡΠ²ΡΠΉ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· ΡΠΈΠΏΠ° ΠΊΠ»Π°ΡΡΠ°, Π²ΡΠΎΡΠΎΠΉ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ (ΠΈΠ½Π°ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ QueryAll Π΄Π»Ρ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π΄Π΅Π»Π°Π΅Ρ Π½Π΅Π½ΡΠΆΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ Π΅Π³ΠΎ ΡΠΈΠΏΠ°). ΠΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π΄Π»Ρ ΡΠ΅Π»Π΅ΠΉ Π΄Π΅ΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΠΊΠΈ ΠΌΡ Π²ΡΡΠ΄ Π»ΠΈ Π±ΡΠ΄Π΅Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ 10 ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π·Π° ΠΎΠ΄ΠΈΠ½ Π·Π°ΠΏΡΠΎΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΡΠΏΠΈΡΠ°ΡΡ ΡΡΡ Π·Π°Π΄Π°ΡΡ Ρ ΠΏΠΎΠΌΠ΅ΡΠΊΠΎΠΉ «Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ, ΠΈΠ±ΠΎ ΠΏΡΠΈΡΠΎΠ΄Π½Π°Ρ Π»Π΅Π½Ρ». ΠΠΎ Π΅ΡΠ»ΠΈ Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ Π΄ΠΎΠΉΠ΄ΡΡ ΡΡΠΊΠΈ Π΄ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Β Ρ ΡΠ°Π΄ΠΎΡΡΡΡ ΠΏΡΠΈΠΌΡ Π²Π°ΡΡ Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΡ.
ΠΠΎΡΠ»Π΅ΡΠ»ΠΎΠ²ΠΈΠ΅
Π§ΡΠΎΠ±Ρ Π½Π΅ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡ ΡΡΡ ΡΠ°ΡΡΡ ΡΡΠ°ΡΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ, ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΠ°ΠΌΠΎΠ΅ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ Π΄Π΅ΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½ ΡΠΈΡΠΌ VMWare, Microsoft, Parallels ΠΈ Oracle Π½Π° ΠΎΡΠΎΠ²Π΅ Π²ΡΡΠ΅ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΊΡΠΈΡΠ΅ΡΠΈΠ΅Π².
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Β ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ TTC.Utils.VMDetect ΠΈ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π² Π½ΡΠΌ ΡΠ°ΠΊΠΎΠΉ ΠΊΠ»Π°ΡΡ DemoTrivialVmDetector:
ΠΠ΅ΡΡ ΠΊΠΎΠ΄, Π²ΠΊΠ»ΡΡΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΈ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅Π΅ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²ΡΠ»ΠΎΠΆΠ΅Π½ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π½Π° github, ΠΎΡΠ·ΡΠ²Ρ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΠΌΡ ΡΡΡΠΊΠ° ΡΡΡΡΠΊΡΡΡΠΈΡΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌΠΈ ΠΠ ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ CPUID ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π΄Π΅ΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΆΠ΅ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΠ.